云服务器免费试用

apachespark介绍(apache spark教程)

服务器知识 0 1153

本文目录:

  • 1、apache spark是什么意思?
  • 2、Apache Spark和Apache Storm的区别
  • 3、Apache Spark 黑名单(Blacklist)机制介绍
  • 4、Apache Flink和Apache Spark有什么异同?它们的发展前景分别怎样
  • 5、大数据中的Spark指的是什么?

apache spark是什么意思?

n.火花;火星;电火花;(指品质或感情)一星,丝毫,一丁点。

averysmallburningpieceofmaterialthatisproducedbysththatisburningorbyhittingtwohardsubstancestogether。

Asparkisatinybrightpieceofburningmaterialthatfliesupfromsomethingthatisburning.

Asparkofaqualityorfeeling,especiallyadesirableone,isasmallbutnoticeableamountofit.一站式出国留学攻略

Apache Spark和Apache Storm的区别

Apache Spark和Apache Store的区别是什么?他们各自适用于什么样的应用场景?这是stackoverflow上的一个问题,这里整理简要版回答如下:

Apache Spark是基于内存的分布式数据分析平台,旨在解决快速批处理分析任务、迭代机器学习任务、交互查询以及图处理任务。其最主要的特点在于,Spark使用了RDD或者说弹性分布式数据集。 RDD非常适合用于计算的流水线式并行操作。RDD的不变性(immutable)保证,使其具有很好的容错能力。如果您感兴趣的是更快地执行Hadoop MapReduce作业,Spark是一个很好的选项(虽然必须考虑内存要求)。Spark相对于hadoop MR来说,除了性能优势之外,还有大量丰富的API,这使得分布式编程更高效。

Spark架构图如下,总体结构非常简洁,没什么需要多说的,这里对spark的几个细节补充解读如下:

每个spark应用程序有自己的执行进程,进程以多线程的方式执行同一个应用的不同任务(tasks)。

因为不同的spark应用是不同进程,所以无论是在driver端还是executor端,不同用程序都是互相隔离的,在没有集群外存储的情况下,应用之间不能共享数据。

Spark对底层集群管理器是不可知的。通常能做集群进程管理的容器,都可以管理spark程序。例如Mesos / YARN这样的集群管理也可以用于spark。当前在各大互谅网公司比较常用的就是基于yarn的spark。

driver端必须在整个应用的生命周期内存在,并且是可寻址(固定在某个机器或者说IP上),因为executor都要跟driver建立连接并通讯。

由于是driver端来负责任务的调度(指应用具体操作的输入输出控制,区别于yarn的集群管理),所以driver端最好跟executor端最好在同一个局域网(比如同一个机房),从而避免远距离通信。实时上driver端即使不做大的返回集合collect的话,如果任务分片(partitions)很多,也会有大量通信开销。

Apache Spark 黑名单(Blacklist)机制介绍

在使用 Apache Spark 的时候,作业会以分布式的方式在不同的节点上运行;特别是当集群的规模很大时,集群的节点出现各种问题是很常见的,比如某个磁盘出现问题等。我们都知道 Apache Spark 是一个高性能、容错的分布式计算框架,一旦它知道某个计算所在的机器出现问题(比如磁盘故障),它会依据之前生成的 lineage 重新调度这个 Task。

我们现在来考虑下下面的场景:

上面提到的场景其实对我们人来说可以通过某些措施来避免。但是对于 Apache Spark 2.2.0 版本之前是无法避免的,不过高兴的是,来自 Cloudera 的工程师解决了这个问题:引入了黑名单机制 Blacklist(详情可以参见 SPARK-8425 ,具体的设计文档参见 Design Doc for Blacklist Mechanism ),并且随着 Apache Spark 2.2.0 版本发布,不过目前还处于实验性阶段。

黑名单机制其实是通过维护之前出现问题的执行器(Executors)和节点(Hosts)的记录。当某个任务(Task)出现失败,那么黑名单机制将会追踪这个任务关联的执行器以及主机,并记下这些信息;当在这个节点调度任务出现失败的次数超过一定的数目(默认为2),那么调度器将不会再将任务分发到那台节点。调度器甚至可以杀死那台机器对应的执行器,这些都可以通过相应的配置实现。

我们可以通过 Apache Spark WEB UI 界面看到执行器的状态(Status):如果执行器处于黑名单状态,你可以在页面上看到其状态为 Blacklisted ,否则为 Active。如下图所示:

拥有了黑名单机制之后,上面场景的问题就可以很好的解决。

目前黑名单机制可以通过一系列的参数来控制,主要如下:

因为黑名单机制目前还处于实验性状态,所以上面的一些参数可能会在后面的 Spark 中有所修改。

Apache Flink和Apache Spark有什么异同?它们的发展前景分别怎样

Apache Fink是一种大规模的数据处理工具,它以大数据量的低数据延迟和高容错性快速处理大数据。它的定义特征是它能够实时处理流数据。

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎,是一种与 Hadoop 相似的开源集群计算环境。

相同点:

都是apache 软件基金会(ASF)旗下顶级项目,都是通用数据处理平台。它们可以应用在很多的大数据应用和处理环境。两者均可在不依赖于其他环境的情况下运行于standalone模式,或是运行在基于hadoop(YARN,HDFS)之上,由于它们均是运行于内存,所以他们表现的都比hadoop要好很多。

二者的不同:

Flink在进行集合的迭代转换时可以是循环或是迭代计算处理。flink的流式处理的是真正的流处理。流式数据一旦进入就实时进行处理,这就允许流数据灵活地在操作窗口。

Spark 在另一方面是基于弹性分布式数据集(RDD),这(主要的)给于spark基于内存内数据结构的函数式编程。它可以通过固定的内存给于大批量的计算。

大数据中的Spark指的是什么?

Spark是一种通用的大数据计算框架,和传统的大数据技术MapReduce有本质区别。前者是基于内存并行计算的框架,而mapreduce侧重磁盘计算。Spark是加州大学伯克利分校AMP实验室开发的通用内存并行计算框架,用于构建大型的、低延迟的数据分析应用程序。

Spark同样支持离线计算和实时计算两种模式。Spark离线计算速度要比Mapreduce快10-100倍。而实时计算方面,则依赖于SparkStreaming的批处理能力,吞吐量大。不过相比Storm,SparkStreaming并不能做到真正的实时。

Spark使用强大的函数式语言Scala开发,方便简单。同时,它还提供了对Python、Java和R语言的支持。

作为大数据计算框架MapReduce的继任者,Spark具备以下优势特性。

1,高效性

不同于MapReduce将中间计算结果放入磁盘中,Spark采用内存存储中间计算结果,减少了迭代运算的磁盘IO,并通过并行计算DAG图的优化,减少了不同任务之间的依赖,降低了延迟等待时间。内存计算下,Spark 比 MapReduce 快100倍。

2,易用性

不同于MapReduce仅支持Map和Reduce两种编程算子,Spark提供了超过80种不同的Transformation和Action算子,如map,reduce,filter,groupByKey,sortByKey,foreach等,并且采用函数式编程风格,实现相同的功能需要的代码量极大缩小。

3,通用性

Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。

4,兼容性

Spark能够跟很多开源工程兼容使用。如Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且Spark可以读取多种数据源,如HDFS、HBase、MySQL等。

【apachespark介绍】的内容来源于互联网,如引用不当,请联系我们修改。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: apachespark介绍(apache spark教程)
本文地址: https://solustack.com/20121.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。