Hadoop Summit 2016 会场回顾(三)

阅读数:1175 2016 年 4 月 21 日

话题:大数据语言 & 开发架构文化 & 方法AI

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 开源产品架构,“杰出技术贡献奖”的获奖者、摩根士丹利副总裁,负责全球监管报表基础架构。