Spark是什么?

Spark是什么?Spark 是个通用的集群计算框架 通过将大量数据集计算任务分配到多台计算机上 提供高效内存计算 如果你熟悉 Hadoop 那么你知道分布式计算框架要解决两个问题 如何分发数据和如何分发计算 Hadoop 使用 HDFS 来解决分布式数据问题 MapReduce 计算范式提供有效的分布式计算 类似的 Spark 拥有多种语言的函数式编程 API 提供了除 map 和 reduce 之外更多的运算符 这些操作是

  Spark是个通用的集群计算框架,通过将大量数据集计算任务分配到多台计算机上,提供高效内存计算。如果你熟悉Hadoop, 那么你知道分布式计算框架要解决两个问题:如何分发数据和如何分发计算。Hadoop使用HDFS来解决分布式数据问题, MapReduce计算范式提供有效的分布式计算。类似的,Spark拥有多种语言的函数式编程API,提供了除map和reduce之外 更多的运算符,这些操作是通过一个称作弹性分布式数据集(resilient distributed datasets, RDDs)的分布式数据框架进行的。 本质上,RDD是种编程抽象,代表可以跨机器进行分割的只读对象集合。RDD可以从一个继承结构(lineage)重建( 因此可以容错),通过并行操作访问,可以读写HDFS或S3这样的分布式存储,更重要的是,可以缓存到worker节点的内存 中进行立即重用。由于RDD可以被缓存在内存中,Spark对迭代应用特别有效,因为这些应用中,数据是在整个算法运算过程 中都可以被重用。大多数机器学习和最优化算法都是迭代的,使得Spark对数据科学来说是个非常有效的工具。另外,由于Spark 非常快,可以通过类似Python REPL的命令行提示符交互式访问。 Spark库本身包含很多应用元素,这些元素可以用到大部分大数据应用中,其中包括对大数据进行类似SQL查询的支持, 机器学习和图算法,甚至对实时流数据的支持。 核心组件如下:  Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和 Spark Core之上的。 Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数 据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。对熟悉Hive和HiveQL的人,Spark可以拿来就用。 Spark Streaming:允许对实时数据流进行处理和控制。很多实时数据库(如Apache Store)可以处理实 时数据。Spark Streaming允许程序能够像普通RDD一样处理实时数据。 MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法, 比如分类、回归等需要对大量数据集进行迭代的操作。之前可选的大数据机器学习库Mahout,将会转到Spark,并在未来实现。 GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所 有顶点的操作。 由于这些组件满足了很多大数据需求,也满足了很多数据科学任务的算法和计算上的需要,Spark快速流行起来。不仅如此, Spark也提供了使用Scala、Java和Python编写的API;满足了不同团体的需求,允许更多数据科学家简便地采用Spark作为他们的 大数据解决方案。  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221433.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午6:07
下一篇 2026年3月17日 下午6:07


相关推荐

  • 启动、关闭ubuntu Linux防火墙

    启动、关闭ubuntu Linux防火墙由于 LInux 原始的防火墙工具 iptables 过于繁琐 所以 ubuntu 默认提供了一个基于 iptable 之上的防火墙工具 ufw sudoufwstatu 检查防火墙的状态 sudoufwversi 防火墙版本 ubuntu 系统默认已安装 ufw 2 启用运行以上两条命令后 防火墙在系统启动时自动开启 关闭所有外部对本机的访问 但本机访问外部正常打开或关闭某个端口 例如 sudoufwallow 允许所有的外部 IP 访问本机的 25 tcp smtp 端口 sudo

    2025年10月27日
    6
  • Java中Integer与String类型互转

    Java中Integer与String类型互转前言在日常的 Java 编程中 会遇到需要将 int 类型转换成 String 类型的情况 这时候可以使用 Integer 类进行操作 在转换的时候 需要注意对象是否为 null 一 integer 转 String 类型存在三种方法 核心都是静态方法 toString 方法一 Integer 类的静态方法 toString Integera 3 Stringstr Integer toString a 方法二 Integer 类的成员方法 toString Integera 3 Stri

    2026年3月18日
    2
  • ViewStub基本用法「建议收藏」

    ViewStub基本用法「建议收藏」在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl…

    2022年6月28日
    25
  • centos7中ifconfig没有ens33

    centos7中ifconfig没有ens33一 背景我原本是已经配好网络了的 也许配得不完美 但至少之前一段时间里是可以进行网络通信的 只是 这配好的网络突然说没就没了 好像之前也发生过这样的事儿 不过我之前没有记录 所以这回又重新来过 sad 也就是说 ens33 配置文件是没问题的 onboot 已经 yes 了 mac 地址是没问题的 因为我既没更换网卡也不是新克隆来的虚拟机 二 问题及其解决方法 1 ifconfig 只有 lo vi

    2026年3月17日
    3
  • 耗时半年的完成的《PyCharm中文指南》给你答案确实无敌了

    耗时半年的完成的《PyCharm中文指南》给你答案确实无敌了如果我没猜错的话 好多 Python 零基础的朋友们都在抱怨 为什么 pycharm 软件不是中文 英文看起来头疼又费劲 正好 上周末我发现了一本 python 好书 它的名字叫 PyCharm 中文指南 它不仅适用于一个刚入坑 Python 还未接触 PyCharm 的菜鸟 对于 Python 资深程序员也同样适用 因此这些技巧不是有多难 只是你没时间去研究 我大概翻看下 这书一共将近 200 页的 PDF 300 张图片 内含大量的图解 制作之精良 值得每个 Python 自学者人手一份

    2026年3月16日
    3
  • ai绘画midjourney如何使用

    ai绘画midjourney如何使用

    2026年3月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号