Spark 发展历程与基本概念

本贴最后更新于 2720 天前,其中的信息可能已经事过景迁

Hadoop 十年

找了一张 Hadoop 十年的生态发展图:
hadoop10 年

Spark 概况:

Apache Spark 是一个开源簇运算框架,最初是由加州大学柏克莱分校 AMPLab 所开发。相对于 HadoopMapReduce 会在运行完工作后将中介数据存放到磁盘中,Spark 使用了内存内运算技术,能在数据尚未写入硬盘时即在内存内分析运算。Spark 在内存内运行程序的运算速度能做到比 Hadoop MapReduce 的运算速度快上 100 倍,即便是运行程序于硬盘时,Spark 也能快上 10 倍速度。Spark 允许用户将数据加载至簇内存,并多次对其进行查询,非常适合用于[机器学习]。
使用 Spark 需要搭配簇管理员和分布式存储系统。Spark 支持独立模式(本地 Spark 簇)、Hadoop YARNApache Mesos 的簇管理。 在分布式存储方面,Spark 可以和 HDFSCassandraOpenStack SwiftAmazon S3 等接口搭载。 Spark 也支持伪分布式(pseudo-distributed)本地模式,不过通常只用于开发或测试时以本机文件系统取代分布式存储系统。在这样的情况下,Spark 仅在一台机器上使用每个 CPU 核心运行程序。

Spark 发展历程:

  • Spark 在 2009 年由 Matei Zaharia加州大学柏克莱分校 AMPLab 开创
  • 2010 年通过 BSD 许可协议开源发布。
  • 2013 年 6 月,该项目被捐赠给 Apache 软件基金会并切换许可协议至 Apache2.0。
  • 2014 年 2 月,Spark 成为 Apache 的顶级项目。
  • 2014 年 11 月,Databricks 团队使用 Spark 刷新数据排序世界记录。
  • 2014 年 5 月底 Spark1.0.0 发布。
  • 2014 年 9 月 Spark1.1.0 发布
  • 2014 年 12 月 Spark1.2.0 发布
  • ...
  • 2016 年 1 月 4 号 Spark1.6.0 发布
  • ...
  • 2016 年 6 月 26 号 Spark2.0 发布
  • ...
  • 时至今日的 2.2.0 版本

Spark 作为 Hadoop 生态中重要的一员,其发展速度堪称恐怖,不过其作为一个完整的技术栈,在技术和环境的双重刺激下,得到如此多的关注也是有依据的。核心在于 内存计算模型 代替 Hadoop 生态的 MapReduce 离线计算模型,用更加丰富 Transformation 和 Action 算子来替代 map,reduce 两种算子。

Spark 基本组件:

  • Spark Core:Spark 核心 API,提供 DAG 分布式内存计算框架。
  • SparkSql:提供交互式查询 API,
  • SparkStreaming:实时流处理。
  • SparkML:机器学习 API
  • SparkGraphx:图形计算。

Spark 中的基本概念:

  • Master:Spark 集群的主节点,负责资源的调度,管理。
  • Worker:Spark 集群的分支节点,负责任务的执行。
  • Application:开发的 Spark 应用。
  • SparkContext:SparkApp 的入口,负责资源的调度,任务的分发。
  • RDD:(Resillient Distributed Dataset)弹性式分布式数据集,是 SparkAPP 的核心操作对象,也是最底层的数据抽象,一个 RDD 会被分为多个 Partition(分区),每个分区分布在集群的不同节点上。
  • Local 模式:Spark 应用的本地模式,测试环境,不需要搭建集群环境就能够使用。
  • Standalone:原生的 Master/Worker 模式来运行 APP。
  • Yarn:Yarn 集群模式,通过 Yran 集群来进行 SparkAPP 的运行。

Spark 与 Hadoop:

说起 Hadoop,可能第一个想到的就是 MapReduce,MapReduce 是 Hadoop 的核心,但不是全部,Hadoop 早已经不是某个离线批处理框架了,而是代表了整个 Hadoop 生态系统,从页首的图可以看到 Spark 只是整个 Hadoop 生态系统的一部分。Spark 仅仅能够代替 Hadoop 的 MapReduce 框架做内存计算。无论是交互式查询还是实时流处理数据均来源与 Hadoop 生态的组件:hbase,hive,Hdfs,Kafka...所以说 Spark 与 Hadoop 是密不可分的。

  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 560 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
rzx
此生最怕深情被辜负,最怕兄弟成陌路。对世界充满善意,同时又充满深深的恨意,我渴望天降甘霖福泽众生,又渴望灭世洪水重创世纪。 广州