2016年4月13日,都柏林的Liffey河畔,Hadoop Summit 2016在Convention会展中心盛大开幕。大会主要议程历时2天,有100多场演讲,与会者超过1400人。主要内容包括Apache Committer洞察、数据科学、运营管理、开发技术、数据商务、物联网、Hadoop未来几大系列。本文就Apache Committer洞察、开发技术、Hadoop未来这三方面的一些内容做一个简单回顾。
Apache NiFi 演讲
演讲来自Bryan Bende, Hortonworks。Apache NiFi是Hortonworks最近推的一个跨系统的数据流集成系统。在拥挤的Hadoop数据流系统中,它定位在系统间的集成,强调可靠、安全、跨地域的数据传输,能做简单的数据处理(比如格式转换),但不做分布式计算,不做复杂的数据处理(比如连接、时间窗聚合),从而和Storm、Spark Streaming、Flink等加以区分。既然是集成,那就要与各类Hadoop系统连接,支持有HDFS、HBase、Kafka、Spark Streaming、Storm、Flink等等,有易于扩展的编程接口。NiFi有所见即所得的图形界面,可以拖拽创建流程图,动态部署。可惜展示的一个简单日志分析的流程图看起来还是非常复杂,让人想起从前在工作流系统上用图形做循环编程的噩梦。NiFi的未来发展有高可用性、多租户、和能在小型设备上运行的MiNiFi等。个人感觉NiFi的定位比较窄,大型的跨地域的数据中心是它的必然用户,而小型的集中的数据中心也许会偏爱简单的ETL,或者直线连接上下游系统,跳过这个额外的数据集成组件。
The Future of Apache Storm 演讲
P. Taylor Goetz,Apache Storm的Vice President为我们带来这个演讲。其内容主要是Storm 1.0更新内容,而非未来(当然在准备演讲的2个月前,这些应该是未来)。Pacemaker是Zookeeper的一个可选替代,解决了2k+节点大型集群在Zookeeper上的性能瓶颈问题。Distributed Cache API类似于Hadoop MapReduce的同名技术,帮助把共享资源分发到集群,不再需要打包在Jar中,方便资源更新。HA Nimbus弥补了Nimbus的单点失效问题,不再因为Nimbus失效而必须重部署所有topologies。支持Streaming Window,其长度可以按时间或者记录数配置,窗口步进也可配置,并且窗口可以重叠。支持状态管理,Bolt可以申明自己的状态并在检查点保存,在之前这些功能只能由应用自己完成。Resource Aware Scheduler,根据topology申明的资源需求(CPU内存等)自动分配计算节点,类似YARN。排错和监控得到极大增强,可以动态调整log level并搜索分布式日志。支持动态采样topology和部件中流动的记录,方便调试。支持JVM进程的Profiling。此外还有动态压力反馈,与各类其他系统的集成等等功能。总的来说,Storm 1.0带来最多16倍的性能提升(同时小字写道一般3倍左右,根据用例不同),延迟缩短60%以上,是一个非常成熟的分布式流处理系统。对于未来发展,个人已经想不到完善如Storm还有什么大块的功能,Taylor谈到可能会增加对Clojure语言的支持。
Ingest and Stream Processing - What Will You Choose? 演讲
来自Pat Patterson, StreamSets和Ted Malaska, Cloudera Inc。Hadoop上的流处理系统群雄并起,到底是用Storm还是Spark Streaming还是Flink,怎样做到Exactly Once? Ted把整个流程分为生产者、分发者、处理器、目的地几个部分,然后分别讨论。一个有趣的发现是如果目的地是类似HBase的KV系统,也许你根本不需要Exactly Once,因为多次投递本来就能被消化。同时生产者也可以通过UUID或者时序ID等技巧帮助后续系统发现和排除重复记录。如果必需要靠系统保证Exactly Once,那就来看处理器的部分。Storm被认为是缓慢和“过时”的(现场马上有反对者的声音,并指出Storm 1.0刚刚发布,性能有极大提升),并且必须Trident配合才能实现Exactly Once。Spark Streaming被认为性能良好且功能丰富,开发社区非常活跃,是演讲者推荐的处理引擎。Flink的设计看来非常完美,然而后发的劣势使它的社区体量大大不如Spark Streaming,且功能也相对薄弱(同样现场马上也有反对的声音,表示不能把Spark社区和Spark Streaming社区混为一谈)。Kafka Streams也是一个选择,但还非常早期,表示关注。聊完了各种竞争流处理引擎,演讲的最后Pat话锋一转,表示其实这些都不重要,因为有一个图形化的流处理编辑器StreamSets,能够可视化的开发Data Flow并且编译到各种引擎上执行,还在现场展示了开发、部署和调试的过程,背后使用了Kafka和Spark Streaming作执行引擎。相当精彩。
Hadoop Platform at Yahoo: A Year in Review 演讲
来自Sumeet Singh, Yahoo大数据平台的Senior Director。Yahoo一直是Hadoop的大用户和贡献者,无论哪一方面,他们的工作都很有参考价值。Sumeet先生在第二天上午的Key Note环节已经介绍过了Hadoop在Yahoo的最新动态,所以这次演讲更多是深入和答疑。Yahoo部署有很多Hadoop集群,共享的、专有的、公网的、内网的。软件栈也非常丰富,尤其对Pig和Oozie的广泛应用是别处不多见的。去年Yahoo的Research集群经过一次整合,采用更好的硬件淘汰旧机器,节点数从一万多下降到了两千多台,集群容量提升65%,利用率上升50%,最重要的总持有成本下降了40%。另一个亮点是采用100Gbps的InfiniBand网络连接GPU集群,提供机器学习计算能力。利用YARN节点标记能力,将机器学习任务发送到指定的GPU服务器。Yahoo采用CaffeOnSpark做深度学习,一些新的用例如气象预报、Flickr人脸识别、风景检测等等。Yahoo集群的总计算量一直在随时间线性增长,MapReduce任务被慢慢转换成Tez或者Spark任务,但下降的速度并不是很快,可以想见MapReduce将一直存在下去。Yahoo的Storm集群也是数一数二的规模,有两千多台。Storm 1.0的很多新功能都已经使用,比如多租户和Pacemaker。最后还提到在HBase上实现事务ACID特性的新开源项目Omid,也已经进入Apache孵化器阶段。
Accelerating Apache Hadoop through High-Performance Networking and I/O Technologies 演讲
由Dhabaleswar K (DK) Panda, The Ohio State University带来。从2005年以来,世界前500强的超级计算机已经越来越多由Commodify Machine集群组成,到今年这个比例已经达到85%。于是很容易想到,能不能用超级计算机(High-Performance Computer)技术来加速我们商用的Hadoop集群。可以借鉴的HPC技术以InfiniBand网络技术为首,也包括10-40Gbps的以太网和RoCE(RDMA over Converged Enhanced Ethernet)。这些技术可以将网络延迟缩短到1微妙以内,速率达到100Gbps,并且占用非常少的CPU(5-10%)。可惜应用起来需要抛弃现有的Sockets编程接口而改用Verbs接口。俄亥俄州立大学有一个名为HiBD的项目,提供改写后的Hadoop/YARN/MapReduce,使用上述的HPC网络技术来提升Hadoop性能。有性能报告称能不同程度提速40%到50%左右。网站提供软件下载,但没有开放源码。
作者介绍 : 李扬 ,Kyligence联合创始人兼CTO,Apache Kylin联合创建者及项目管理委员会成员(PMC), 主创团队架构师和技术负责人,专注于大数据分析,并行计算,数据索引,关系数学,近似算法,压缩算法等前沿技术。曾任eBay全球分析基础架构部大数据资深架构师、IBM InfoSphere BigInsights的技术负责人,负责Hadoop开源产品架构,“杰出技术贡献奖”的获奖者、摩根士丹利副总裁,负责全球监管报表基础架构。