订阅云计算RSS CSDN首页> 云计算

大数据生态系统论坛(上):Hadoop、Spark交相辉映

发表于2014-12-15 15:03| 次阅读| 来源CSDN| 0 条评论| 作者仲浩

摘要:2014中国大数据技术大会第二日上午大数据生态系统论坛上,Apache Spark PMC成员孟祥瑞、Apache Hadoop和Tez项目PMC成员Bikas Saha、美国俄亥俄州立大学鲁小亿、华为徐健鹏等专家主要专注于大数据热门技术展开演讲。

【CSDN现场报道】2014年12月12-14日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中科院计算所与CSDN共同协办,以推进大数据科研、应用与产业发展为主旨的 2014中国大数据技术大会 (Big Data Technology Conference 2014,BDTC 2014)暨第二届CCF大数据学术会议在北京新云南皇冠假日酒店盛大开幕。

2014中国大数据技术大会第二日上午大数据生态系统论坛上,Databricks 软件工程师、Apache Spark PMC成员孟祥瑞 ,美国俄亥俄州立大学计算机科学与工程系Senior Research Associate鲁小亿,华为Universe大数据平台的架构师徐健鹏,Apache Hadoop和Tez项目PMC成员Bikas Saha,Intel Senior Software Engineer、Apache Hadoop Committer、Apache Hadoop PMC Member Uma Maheswara Rao G,Intel Senior Software Engineer、Apache Hadoop Committer刘轶六位专家主要专注于大数据热门技术展开演讲。

1. 孟祥瑞:Apache Spark and Databricks Cloud 


Databricks 软件工程师、Apache Spark PMC成员 孟祥瑞

Databricks 软件工程师、Apache Spark PMC成员孟祥瑞表示,在加入Apache之后,Spark人气呈直线上升,提供Spark商业版的公司已包括Cloudera、Hortonworks、Pivotal、Datastax、IBM、Oracle、SAP、MapR。Spark之所以能这么火爆,主要原因可归为:

  • Spark的快速——基于内存和计算模型
  • Spark高可扩展——Spark具备高扩展性和健壮性
  • Spark是开源的——让开发人员可以很容易的贡献代码,同时用户可以很快的拿到代码
  • Spark支持Python、Java、Scala等
  • Spark支持Marc、Linux、Windows等

最后一点,也是最重要的是,Spark非常简单,这点可以从Spark和Hadoop中的WordCount方法比较发现

 

演讲期间,孟祥瑞还分享了Spark 1.2的主要更新:Core,YARN上的自动扩展、外部的shuffle服务;SQL,外部的数据源、fixed-precision decimal;MLlib,管道和参数、随机森林、更多的Python API;Streaming,驱动程序高扩展性、Python API。最后,孟祥瑞还为我们分享了Databricks Cloud的打造目标:旨在提供100%的Spark特性、一个零管理的云平台、交互式查询和可视化、交互式仪表盘等。

2. 鲁小亿:在现代集群上使用RDMA加速大数据处理


美国俄亥俄州立大学计算机科学与工程系Senior Research Associate 鲁小亿 

鲁小亿表示,时至今日,集群计算已成为高性能计算的代名词,在越来越多的超级计算机中被使用:


 而在2014年11月公布的Top500超算中,使用了InfiniBand(基于RDMA)高性能网络的系统占45%。毫无疑问,高性能网络已立足新时代的大数据系统。并在高性能计算的消息传递接口(MPI)、并行文件系统(Lustre、GPFS)、苛刻性能(延时、带宽和利用率)要求场景、苛刻扩展性场景下得到广泛应用。

随后,鲁小亿详细的讲解了RDMA技术如何作用到大数据处理的各个环节,最后更公布了RDMA可能给大数据各个组件带来的提升:


                HDFS中的通信时间对比                                       MapReduce上的性能提升

3. 徐健鹏:基于DAG引擎的流式ETL


华为Universe大数据平台的架构师 徐健鹏

徐健鹏重点介绍了商业及技术背景和DAG引擎技术解析。大数据时代对ETL提出的挑战一节,徐健鹏表示,当下的挑战主要来自4个方面:数据量显著增长,从G级到T级(每天的数据量);复杂性增加,简单的数据转换->大量的汇总计算、Join操作;时延降低,计算周期从天级->分钟级;成本降低,小型机/磁阵+数据库->X86/本地盘+Hadoop。随后,他详细的分析了流计算、MapReduce、Spark三个类型计算框架的,并说明其不适合电信领域典型场景的原因:

电信领域典型场景需求

  • 每秒实时信令超过50万条,平均每条消息0.5K
  • 统计周期10分钟,需要处理150G数据
  • KQI指标维度组合多,计算复杂,总计算输出量接近原始数据的1/3~1/2
  • 需要在12节点(单机96G内存)内完成数据的采集和计算

当下的3个类型计算框架

1. 流计算

  • 以单条记录(或微批量)处理为基础,强调低时延,而非吞吐量
  • 关注从大量事件中,过滤和计算出感兴趣的少量结果(模式匹配)
  • 状态的内存占用及可靠性是大问题,不适合输出大量结果的汇总和Join计算
  • 时间窗不宜设置太长,而且此时间和业务真正发生的时间并不是同一个时间

2. MapReduce

  • M/R计算模型的约束很强,表达能力有限。稍微复杂一点的ETL图,必须被编译为多个M/R的JOB,而且JOB之间无法直连,数据需要写中间文件。
  • Map和Reduce的数据传递采用pull模式,中间结果写磁盘
  • 很多情况下不必要的Sort和Merge
  • 最初是为处理非结构化数据而设计的(Key,Value),对于格式化数据的处理效率较低
  • 强调大集群(>100)下,长时间(几十分钟以上)任务的可靠性和可扩展性,而非性能

3. Spark

  • Spark的核心概念是RDD (Resilient Distributed Dataset),指的是一个只读的,可分区的分布式数据集。
  • RDD数据集可全部或部分可以缓存在内存中,比较适合小数据迭代计算。如果内存不够用,则需要存储在磁盘上,此时退化为类似M/R的模式。
  • Spark在跨节点计算过程中采用和M/R类似的模式,也是“Pull”模式,不是“Push”模式
  • 任务调度是基于每个RDD的Action单独进行的,没有整体图的概念,无法做全局优化
  • 中间RDD如果要重用,则必须在内存cache,但这样会占用大量内存;而如果不cache,则会造成中间RDD被重复计算。因此Spark不太适合多输出且中间过程输出量很大的计算场景。

为什么不合适

  • 流计算以单条或者微批为基础,强调实时性,但不太适合长时间窗或者大输出量的复杂计算
  • M/R适合大数据量的批处理计算,强调容错性而牺牲性能,难以满足分钟级计算
  • Spark不太适合多输出中间结果很大的计算任务

最后,徐建鹏详细介绍了DAG,及华为在基于DAG引擎的流式ETL打造经验。

什么是DAG

  • DAG = Directed Acyclic Graph,即无环有向图。
  • Operator完成数据转换功能,如抽取、过滤、汇总、排序、合并、路由等等
  • Connector用于连接Operator,完成数据的传输,包括改变数据的分布(即Partition)。
  • 数据的传输采用Pipeline模式(也称为Push模式),避免中间结果落地或者内存堆积
  • 计算任务的分解、执行和调度基于整个图来优化

DAG是对Hadoop计算模型的补充

  • Hadoop2.0引入了YARN,这是一个更为通用的分布式任务和资源管理框架,为实现其他计算模型提供了可能
  • DAG模型和M/R模型是并列的,有各自不同的质量属性,适用于不同的场景
  • DAG模型和M/R基于同样的基础构造,如YARN、Zookeeper、HDFS等,因此可以在一套集群环境中运行
  • 在监控和管理上统一
  • Universe BDI面向用户,提供和实现技术无关的数据虚拟机的更高层的概念封装,一个数据流上既可以选择以DAG方式运行也可以选择以M/R方式运行

4. Bikas Saha:Apache Tez-A Framework to Model and Build Hadoop Data Processing Applications


 Apache Hadoop和Tez项目PMC成员 Bikas Saha

Bikas Saha指出,对比Hadoop1.0和2.0,本质的区别就在于资源管理和计算引擎的分离,也是从整体到分层的改变。随后,Bikas对Tez进行了全方位的解析:

Tez – Design considerations:很难去打造一个通用的引擎,然后进行定制化。Hadoop的流行性决定了多领域定制化引擎的存在,这里不是要做一个通用的引擎,而是打造一个框架用于建立定制化引擎。

Tez – Empowering Applications:首先,解决分布式Hadoop环境运行难的问题;其次,让应用程序可以聚焦自己关注的领域;最后,成为通用应用程序的平台。随后,他详细介绍了Tez对Hadoop生态圈各个组件的提升。

Tez – Problems that it addresses:计算的表示、性能和运营简单。

Tez – End User Benefits:应用程序获得更高的性能、更可预测的结果、更好的利用计算能力、减少HDFS的压力、减少网络使用、提高应用程序生产力。

……

Bikas随后对各个分类进行了详细的描述,在计算的表示上,Bikas分享说,Tez提供了DAG和Runtime API用于计算。其中DAG API定义了数据处理的结构,以及生产者和消费者之间的关系。

5. Uma Maheswara Rao G & Yi Liu :Apache Hadoop中的扩展属性和透明加密

大数据生态系统分论坛上午场最后一场演讲来自Intel的两位员工——Uma Maheswara Rao G 和刘轶。其中,Uma Maheswara Rao G主要负责讲Hadoop的扩展属性,刘轶的分享则是围绕Hadoop的透明加密:


Intel高级软件工程师、Apache Hadoop Committer及PMC Uma Maheswara Rao G

Uma Maheswara Rao G首先为我们介绍了Hadoop的扩展属性:Intel高级软件工程师、Apache Hadoop Committer及PMC 允许用户将使用文件/目录关联额外的元数据;Extended Attributes(Xattrs) 可以在任何INode上设置为Key-Value对;XAttrs不会由文件系统解释;用户可以自定义编码XAttrs格式。

随后,他从命名空间、实现细节、配置、用例等多个方面对XAttrs进行了解析。在实现细节中,Uma强调了如下点:在Namenode中,XAttrs被作为独立的INode特性实现;XAttrs今后将持续作为INode信息;同时,这里不会存在兼容问题,更新可以自动的进行,XAttrs将被视为INode特性储存。


Intel Senior Software Engineer、Apache Hadoop Committer 刘轶

刘轶的分享则围绕着Hadoop的透明加密,其概要为:对上层应用程序透明,并且可由所有HDFS客户端透明访问;高性能,不是瓶颈;透明独立于文件类型和数据格式;扩展键管理;终端到终端的加密,数据只能被客户端加密和解密。安全,HDFS不负责数据解密,或者加密键。

在透明加密的实现细节中,刘轶主要谈了下面几点:支持Pread;原始文件和加密文件的长度相等,并通过AES-CTR实现1:1对应;在Intel平台上使用AES-NI支持可以提升透明加密性能,大约在20倍;定义加密区域,文件可以在这个区域加密和解密;使用了两个键——encryption zone key (EZK)和data encryption key (DEK),DEK由EZK加密,每个文件都拥有唯一的DEK。

更多精彩内容,请关注直播专题 2014中国大数据技术大会(BDTC)  ,新浪微博 @CSDN云计算 ,订阅CSDN大数据微信号。

0
0