江左梅郎2017/01/12         
美国时间2017年 1 月 10 日,Apache 软件基金会对外宣布,万众期待的 Apache Beam 在经历了近一年的孵化之后终于成熟。Apache Beam也成为Apache软件基金会的又一个顶级项目。至此,谷歌终于也完成了对其云端大数据平台 Cloud Dataflow 开源的承诺。
Akidau 在官方博文中写道,这就是开源软件令人感佩的原因:“人们聚在一起创建每个人可用的伟大、实用的系统,因为这项工作令人兴奋、有用而且与自身息息相关。这是我对创建 Apache Beam 感到非常兴奋的主要原因,是我为自己在这段旅程中做出了一些小小的贡献感到自豪的原因,以及我对社区为实现这个项目投入的所有工作感到非常感激的原因。”
不得不提的是,仅仅在上个月,腾讯宣布将在 2017 年一季度开源其大数据计算平台 Angel。现在看来,Angel 可能迎来了它最大的对手。Angel平台是使用Java和Scala混合开发的机器学习框架,用户可以像用Spark, MapReduce一样,用它来完成机器学习的模型训练。Angel采用参数服务器架构,支持十亿级别维度的模型训练。采用了多种业界最新技术和腾讯自主研发技术,如SSP(Stale synchronous Parallel)、异步分布式SGD、多线程参数共享模式HogWild、网络带宽流量调度算法、计算和网络请求流水化、参数更新索引和训练数据预处理方案等。这些技术使Angel性能大幅提高,达到常见开源系统Spark的数倍到数十倍,能在千万到十亿级的特征维度条件下运行。
早在一年前,2016 年 2 月份,谷歌及其合作伙伴向 Apache 捐赠了一大批代码,创立了孵化中的 Beam 项目( 最初叫 Apache Dataflow)。这些代码中的大部分来自于谷歌 Cloud Dataflow SDK——开发者用来写流处理和批处理管道(pipelines)的库,可在任何支持的执行引擎上运行。当时,支持的主要引擎是谷歌 Cloud Dataflow,附带对 Apache Spark 和 开发中的 Apache Flink 支持。如今,它正式开放之时,已经有五个官方支持的引擎。除去已经提到的三个,还包括 Beam 模型和 Apache Apex。
大数据处理领域的一大问题是:开发者经常要用到很多不同的技术、框架、API、开发语言和 SDK。我们获知,取决于需要完成的是什么任务,以及在什么情况下进行,开发者很可能会用 MapReduce 进行批处理,用 Apache Spark SQL 进行交互请求( interactive queries),用 Apache Flink 实时流处理,还有可能用到基于云端的机器学习框架。
那么,到底用户在进行数据处理时,需考虑哪几个维度的问题呢?
1.是什么——如何对数据进行计算。例如,Sum、Join或是机器学习中的训练学习模型等。在BeamSDK中由Pipeline中的操作符指定。
2.在哪里——数据在什么范围中计算。例如,基于Process-Time的时间窗口,基于Event-Time的时间窗口,滑动窗口等等。在BeamSDK中由Pipeline中的窗口指定。
3.什么时候——何时将计算结果输出。例如,在1小时的Event-Time时间窗口中,每隔1分钟,将当前窗口计算结果输出。在BeamSDK中由Pipeline中的Watermark和触发器指定。
4.怎样处理——迟到数据如何处理。例如,将迟到数据计算增量结果输出,或是将迟到数据计算结果和窗口内数据计算结果合并成全量结果输出。在BeamSDK中由Accumulation指定。
Apache Beam 的官方解释是:“Beam 为创建复杂数据平行处理管道,提供了一个可移动(兼容性好)的 API 层。这层 API 的核心概念基于 Beam 模型(以前被称为 Dataflow 模型),并在每个 Beam 引擎上不同程度得执行。”
Apache Beam主要有两大特点。
1、统一了数据批处理(batch)和流处理(stream)编程范式,能在任何执行引擎上运行。
2、它不仅为模型设计、更为执行一系列数据导向的工作流提供了统一的模型。这些工作流包括数据处理、吸收和整合。
谷歌开源 Cloud Dataflow 背后的算盘是:期望在 Cloud Dataflow上运行尽可能多的 Apache Beam 管道。打开平台有许多好处:
1、Apache Beam 支持的程序越多,作为平台就越有吸引力。
2、Apache Beam的用户越多,希望在Google Cloud Platform上运行Apache Beam的用户就越多。
3、我们参与开发 Apache Beam 的人越多,我们就越能推进数据处理领域的顶尖技术。
其实,不仅谷歌从中受益,任何跟 Apache Beam 相关的人都能受益。如果存在用于构建数据处理流水线的便携式抽象层,则新流程现在变得更容易实现,并且在提供更好的性能,可靠性,操作管理容易性等的技术创新上具有竞争力。
不爱学习的小孩 2017/01/17
回复
189****8167 2017/01/13
回复