作家
登录

大数据系列之并行计算引擎Spark介绍

作者: 来源: 2017-04-24 14:44:07 阅读 我要评论

 

Spark:

Apache Spark 是专为大年夜范围数据处理而设计的快速通用的计算引擎。

Spark是UC Berkeley AMP lab (加州大年夜学伯渴攀利分校的AMP实验室)所开源的类Hadoop MapReduce的通用处行框架,Spark拥有Hadoop MapReduce所具有的长处;但不合于MapReduce的是Job中心输出结不雅可以保存在内存中,大年夜而不再须要读写HDFS,是以Spark能更好地实用于数据发掘与机械进修等须要迭代的MapReduce的算法。

Spark 是一种与 Hadoop 类似的开源集群计算情况,然则两者之间还存在一些不合之处,这些有效的不合之处使 Spark 在某些工作负载方面表示得加倍优胜,换句话说,Spark 启用了内存分布数据集,除了可以或许供给交互式萌芽外,它还可以优化迭代工作负载。

Spark 是在 Scala 说话中实现的,它将 Scala 用作其应用法度榜样框架。与 Hadoop 不合,Spark 和 Scala 可以或许慎密集成,个中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支撑分布式数据集上的迭代功课,然则实际上它是对 Hadoop 的弥补,可以在 Hadoop 文件体系中并交运行。经由过程名为 Mesos 的第三方集群框架可以支撑此行动。Spark 由加州大年夜学伯渴攀利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开辟,可用来构建大年夜型的、低延迟的数据分析应用法度榜样。

1.更快的速度:内存计算下,Spark 比 Hadoop 快100倍。

  • 内存计算引擎,供给Cache机制来支撑须要反复迭代计算或者多次数据共享,削减数据攫取的I/O开销
  • DAG引擎,削减多次计算之间中心结不雅写到HDFS的开销;
  • 应用多线程池模型来削减task启动开销,shuffle过程中避免不须要的sort操作已经削减磁盘I/O操作;

Spark的机能特点:

2.易用性:

  • Spark 供给了80多个高等运算符。
  • 供给了丰富的API,支撑JAVA,Scala,Python和R四种说话;
  • 代码量比MapReduce少2~5倍;

3.通用性:Spark 供给了大年夜量的看维包含SQL、DataFrames、MLlib、GraphX、Spark Streaming。 开辟者可以在同一个应用法度榜样中无缝组合应用这些库。

4.支撑多种资本治理器:Spark 支撑 Hadoop YARN,Apache Mesos,及其自带的自力集群治理器

Spark基来源基本理:

Spark Streaming:构建在Spark上处理Stream数据的框架,根本的道理是将Stream数据分成小的时光片段(几秒),以类似batch批量处理的方法来处理这小部分数据。Spark Streaming构建在Spark上,一方面是因为Spark的低延迟履行引擎(100ms+),固然比不上专门的流式数据处理软件,也可以用于及时F算,另一方面比拟基于Record的其它处理框架(如Storm),一部分窄依附的RDD数据集可以大年夜源数据从新计算达到容错处理目标。此外小批量处理的方法使得它可以同时兼容批量和及时数据处理的逻辑和算法。便利了一些须要汗青数据和及时数据结合分析的特定应用处合。

Spark背景:

1.MapReduce局限性:

1.仅支撑Map和Reduce两种操作;

3.Map中心结不雅须要写磁盘,Reduce写HDFS,多个MR之间经由过程HDFS交换数据;

5.无法充分应用内存;(与MR产生时代有关,MR出现时内存价格比较高,采取磁盘存储价值小)

6.Map端和Reduce端均须要排序;

7.MapReduce编程不敷灵活。(比较Scala函数式编程而言)

8.框架多样化[采取一种框架技巧(Spark)同时实现批处理、流式计算、交互式计算]:

  • 批处理:MapReduce、Hive、Pig;
  • 流式计算:Storm
  • 交互式计算:Impala

Spark核心概念:

  • RDD:Resilient Distributed Datasets,弹性分布式数据集

2.处理效力低效;不合适迭代计算(如机械进修、图计算等),交互式处理(数据发掘)和流掉处理(日记分析)

  • 分布在集群中的只读对象集合(由多个Partition 构成);
  • 可以存储在磁盘或内存中(多种存储级别);
  • 经由过程并行“转换”操作构造;
  • 掉效后主动重构;
  • RDD根本操作(operator)

Transformation具体内容

  • map(func) :返回一个新的分布式数据集,由每个原元素经由func函数转换后构成
  • filter(func) : 返回一个新的数据集,由经由func函数后返回值为true的原元素构成

*flatMap(func) : 类似于map,然则每一个输入元素,会被映射为0到多个输出元素(是以,func函数的返回值是一个Seq,而不是单一元素)

  • flatMap(func) : 类似于map,然则每一个输入元素,会被映射为0到多个输出元素(是以,func函数的返回值是一个Seq,而不是单一元素)
  • sample(withWordStrment, frac, seed) :

根据给定的随机种子seed,随机抽样出数量为frac的数据。

  • union(otherDataset) : 返回一个新的数据集,由原数据集和参数结合而成
  • groupByKey([numTasks]) :

在一个由(K,V)对构成的数据集上调用,返回一个(K,Seq[V])对的数据集。留意:默认情况下,应用8个并行义务进行分组,你可以传入numTask可选参数,根据数据量设置不合数量标Task


  推荐阅读

  数字化为丹东智慧城市腾飞安上羽翼

第四,要让聪明城市的公平易近经由过程一张“市平易近卡”,融入社会生活并进行社会治理。市平易近卡将是成都聪明城市市平易近为行政办事体系供给同一的身份辨认模式。这张卡功能广泛,集传统的城市通卡、>>>详细阅读


本文标题:大数据系列之并行计算引擎Spark介绍

地址:http://www.17bianji.com/lsqh/34921.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)