BingoInsight基于Spark高效通用的大规模数据处理引擎.doc

BingoInsight基于Spark高效通用的大规模数据处理引擎.doc

ID:59256777

大小:68.50 KB

页数:7页

时间:2020-09-08

BingoInsight基于Spark高效通用的大规模数据处理引擎.doc_第1页
BingoInsight基于Spark高效通用的大规模数据处理引擎.doc_第2页
BingoInsight基于Spark高效通用的大规模数据处理引擎.doc_第3页
BingoInsight基于Spark高效通用的大规模数据处理引擎.doc_第4页
BingoInsight基于Spark高效通用的大规模数据处理引擎.doc_第5页
资源描述:

《BingoInsight基于Spark高效通用的大规模数据处理引擎.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、BingoInsight基于Spark高效通用的大规模数据处理引擎小编的话“品高云公开课”系列文章意在分享技术牛人的知识干货,和大家一起交流学习云知识,每期主题都不一样哟!期待各位读者在文后发表留言,来一场技术上的交流和思想上的碰撞!2016年4月22日本期品高云公开课由张启明带来“BingoInsight基于Spark高效通用的大规模数据处理引擎”的分享。分享嘉宾朱锦勇品高云旗下企业大数据平台BingoInsight开发团队成员。主要工作负责写Java代码。分享正文Hi,大家好,我是BingoInsight的研发工程师张启明,非常荣幸和大家一起学

2、习和交流。今天分享主要的内容包括:1、Spark是什么,Spark的简介。2、如何利用Spark构建BingoInsight的数据处理能力。Spark简介这块为了控制时间和范围,暂时只涉及RDD方面及其Shuffle简介,调度实现先略过,大家有什么疑问的话,随时可在交流过程一起讨论哦Spark是什么呢?从最开始我们在单台机子做数据分析,为了加快分析的速度,通常是将单个任务拆分为多任务,多线程利用cpu多核并行多跑任务,以达到并行计算加快分析的速度。但是单机处理能力毕竟太小,而且单机计算资源纵向扩展费用昂贵且有限制,在容错性方面也不太好。后来MapR

3、educe思想开始流传,在大量普通机子集群上面做分布式的任务分解与结果汇总。MR思想衍生出很多的实现,如Apache下Hadoop的MapReduce。MapReduce广泛应用,慢慢地其缺点也逐渐暴露,如:1、map和reduce两个操作难以表达复杂作业,难以编程,衍生出hive/pig等之类解决框架2、复杂job难以控制,高延时迭代,中间结果写HDFS,衍生出Tez之类的DAG调度框架3、从v1版的计算模型和执行调度资源框架混合,到v2的计算模型和资源管理分离衍生的yarnSpark的出现实际弥补了MR的不足,最初的设计目标是为了扩展MapRe

4、duce模型灵活支持迭代算法和交互操作,同时增强易编程性。实现方面主要借鉴了微软的DryadLINQ,但是其抽象模型RDD(弹性分布式数据集-In-Memory)具有更丰富的表达能力而且具备MapReduce模型优秀特性如Faulttolerance,datalocality,scalability。Spark整体看起来是怎么样呢?spark主要由Master、Worker、Executor、Driver几个组件构成,常见中心化的master/slave结构,主要用于接收Driver端(spark的client,可运行在集群内外任意机器上),Exe

5、cutor主要用于执行计算任务。那么Spark的抽象——RDD是什么?如果类比MapReduce的话,RDD就是Spark的编程模型。我们快速地来看一下RDD的特性及其操作。RDD是不可变、每个分区可并行处理的弹性分布式数据集,主要特性有:1、partitions:分区集合;2、partitioncomputing:分区计算函数;3、dependencies:依赖,依赖是与MR最大不同,其定义为RDD之间lineage(血缘链关系),是job/stage划分依据;4、partitioner:分区函数,key-values结构的RDD才有(hash-

6、partitioned);5、preferredlocations:分区的最优计算位置,例如HDFS的block,可选对应函数。RDD的产生主要有两种方式:1、从已经存在collections中并行化;2、从外部数据源加载,如HDFSetc.RDD的操作主要有两种:1、Transformations:转换,产生新的RDD,lazy方式,如map/filter/sample/etc.2、Actions:提交转换操作,将计算结果返回Driver端,如reduce/collect/etc.另外RDD的Persisting/Caching是迭代算法和快速迭

7、代的关键,可以选择性将数据缓存在内存那么对于分布式计算中,常见异常失败(宕机等),RDD如何做容错呢?有两个办法:1、Lineage,利用RDD的依赖关系链重新进行计算,某个过程或者某个计算分片数据丢失后,可以从最原始数据重新执行一系列的transform操作,也就是计算链的重演。2、Checkpoint,保存点,避免computechain过长时引起耗时使用分布式计算框架最核心的问题Shuffle,RDD是如何解决呢,Spark如何实现呢,简单介绍一下:以前MapReduce模型Shuffle过程是怎么样的?一般地,Map端的输出数据输入至Red

8、uce端的过程叫Shuffle,如下图,Map端主要包括collect、Sort、Spill、Merge几个过程Reduc

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

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

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