大数据计算平台Spark内核全面解读.docx

大数据计算平台Spark内核全面解读.docx

ID:28385285

大小:188.03 KB

页数:9页

时间:2018-12-09

大数据计算平台Spark内核全面解读.docx_第1页
大数据计算平台Spark内核全面解读.docx_第2页
大数据计算平台Spark内核全面解读.docx_第3页
大数据计算平台Spark内核全面解读.docx_第4页
大数据计算平台Spark内核全面解读.docx_第5页
资源描述:

《大数据计算平台Spark内核全面解读.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、大数据计算平台Spark内核全面解读1、Spark介绍Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台,在2010年开源,目前是Apache软件基金会的顶级项目。随着Spark在大数据计算领域的暂露头角,越来越多的企业开始关注和使用。2014年11月,Spark在DaytonaGraySort100TBBenchmark竞赛中打破了由HadoopMapReduce保持的排序记录。Spark利用1/10的节点数,把100TB数据的排序时间从72分钟提高到了23分钟。Spark在架构上包括内核部分

2、和4个官方子模块--SparkSQL、SparkStreaming、机器学习库MLlib和图计算库GraphX。图1所示为Spark在伯克利的数据分析软件栈BDAS(BerkeleyDataAnalyticsStack)中的位置。可见Spark专注于数据的计算,而数据的存储在生产环境中往往还是由Hadoop分布式文件系统HDFS承担。图1Spark在BDAS中的位置 Spark被设计成支持多场景的通用大数据计算平台,它可以解决大数据计算中的批处理,交互查询及流式计算等核心问题。Spark可以从多数据源的读取数据,

3、并且拥有不断发展的机器学习库和图计算库供开发者使用。数据和计算在Spark内核及Spark的子模块中是打通的,这就意味着Spark内核和子模块之间成为一个整体。Spark的各个子模块以Spark内核为基础,进一步支持更多的计算场景,例如使用SparkSQL读入的数据可以作为机器学习库MLlib的输入。表1列举了一些在Spark平台上的计算场景。表1Spark的应用场景举例在本文写作是,Spark的最新版本为1.2.0,文中的示例代码也来自于这个版本。2、Spark内核介绍 相信大数据工程师都非常了解HadoopM

4、apReduce一个最大的问题是在很多应用场景中速度非常慢,只适合离线的计算任务。这是由于MapReduce需要将任务划分成map和reduce两个阶段,map阶段产生的中间结果要写回磁盘,而在这两个阶段之间需要进行shuffle操作。Shuffle操作需要从网络中的各个节点进行数据拷贝,使其往往成为最为耗时的步骤,这也是HadoopMapReduce慢的根本原因之一,大量的时间耗费在网络磁盘IO中而不是用于计算。在一些特定的计算场景中,例如像逻辑回归这样的迭代式的计算,MapReduce的弊端会显得更加明显。那

5、Spark是如果设计分布式计算的呢?首先我们需要理解Spark中最重要的概念--弹性分布数据集(ResilientDistributedDataset),也就是RDD。 2.1弹性分布数据集RDDRDD是Spark中对数据和计算的抽象,是Spark中最核心的概念,它表示已被分片(partition),不可变的并能够被并行操作的数据集合。对RDD的操作分为两种transformation和action。Transformation操作是通过转换从一个或多个RDD生成新的RDD。Action操作是从RDD生成最后的计

6、算结果。在Spark最新的版本中,提供丰富的transformation和action操作,比起MapReduce计算模型中仅有的两种操作,会大大简化程序开发的难度。RDD的生成方式只有两种,一是从数据源读入,另一种就是从其它RDD通过transformation操作转换。一个典型的Spark程序就是通过Spark上下文环境(SparkContext)生成一个或多个RDD,在这些RDD上通过一系列的transformation操作生成最终的RDD,最后通过调用最终RDD的action方法输出结果。每个RDD都可以

7、用下面5个特性来表示,其中后两个为可选的:·分片列表(数据块列表)·计算每个分片的函数·对父RDD的依赖列表·对key-value类型的RDD的分片器(Partitioner)(可选)·每个数据分片的预定义地址列表(如HDFS上的数据块的地址)(可选)虽然Spark是基于内存的计算,但RDD不光可以存储在内存中,根据useDisk、useMemory、useOffHeap,deserialized、replication五个参数的组合Spark提供了12种存储级别,在后面介绍RDD的容错机制时,我们会进一步理解。

8、值得注意的是当StorageLevel设置成OFF_HEAP时,RDD实际被保存到Tachyon中。Tachyon是一个基于内存的分布式文件系统,目前正在快速发展,本文不做详细介绍,可以通过其官方网站进一步了解。1.classStorageLevelprivate(2.   privatevar_useDisk:Boolean,3.   privatevar_useMem

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。