【干货】Google Cloud Dataflow:从原理到应用

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:格灵深瞳网络

小提示:您能找到这篇{【干货】Google Cloud Dataflow:从原理到应用}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的【干货】Google Cloud Dataflow:从原理到应用内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">本次Talk的题目是Google Cloud Dataflow:from concepts to practice。

< font-size: 16px;">Dataflow这个概念第一次与开发者见面是在2014年6月的Google I/O大会上,同年12月,Google首先公布了Dataflow的Java SDK及SDK的源代码。2015年3月初,Dataflow正式上线,作为一个云服务产品出现在Google Cloud产品线中并提供Alpha版本的试用申请。

< font-size: 16px;">

< font-size: 16px;">在传统的MapReduce大数据并行处理中,单一的MapReduce节点无法满足复杂的业务需求,因此多数的大数据处理是以MapReduce多节点管道方式搭建的。这需要开发者编写额外的代码将多个MapReduce节点连接起来并管理各节点的状态和相互之间的数据传输,同时还要维护一个很大的服务器集群;另外,大数据的实时计算也给MapReduce带来了极大的挑战。这是Google开发Dataflow的初衷。作为Google Cloud的一个产品,Dataflow可以与App Engine、Compute Engine,Google Storage、Google Datastore、Google Cloud SQL云存储服务结合,快速搭建一个较为完整的实时大数据并行处理系统。Datafl永州小程序ow简化了系统开发的流程,开发者使用SDK在本地开发、测试和调试并随时将代码提交到云服务上测试和运行。Dataflow会自动对用户的流处理系统进行优化并分发到多个计算节点上并发执行。



< font-size: 16px;">用户开发的大数据系统可从Google提供的多种存储服务和Pub/Sub服务中读取数据进行处理后再写入到指定的存储服务或Pub/Sub服务中。由于Google的存储服务采用了成熟的业界标准,因此用户同样可以将Hadoop、Spark等产品集成到Dataflow中。



< font-size: 16px;">



< font-size: 16px;">Dataflow底层依赖于两个技术:FlumeJava和MillWheel。与2003年的Map-Reduce、BigTable等概念类似,Google研究院于2010年和2013年分别发表的两篇论文介绍FlumeJava和MillWheel,在此之前,这两个项目在Google内部均有一定程度的成功实践。

< font-size: 16px;">在FlumeJava发布之后,有不少媒体称其为下一代的MapReduce(个人认为这个评价过高)。FlumeJava是一个Java库,提供了一个更简单的大数据并行处理框架和工具,其底层的算法模型还是MapReduce。FlumeJava在更高的层面上对MapReduce管道进行数据和流程的抽象,同时提供了内置的流程优化策略。FlumeJava将数据模型抽象为PCollection&lt;T&gt;和PTable&lt;K,V&gt;两个泛型数据结构,并在这两个数据结构上定义了parallelDo(),groupByKey(),combineValues()和flatten()四个操作原语,同时在这四个操作原语的基础上定义了count(),join()和top()等常用操作。通过与传统MapReduce、专家优化的MapReduce作对比,FlumeJava在所需要的代码行数,方法个数和执行时间上均优于传统MapReduce并同专家优化的MapReduce系统不相上下。也就表明通过FlumeJava,普通开发者能在更短时间内就开发出专家级的MapReduce系统。

< font-size: 16px;">Dataflow的另外一个底层技术是MillWheel,其提供了带容错机制的实时数据处理模型。从Google研究院发表的论文来看,MillWheel是一种模型和算法而没有提供可编程框架,因此目前我们没有机会了解其代码层面的实现。从原理上讲,MillWheel内置容错机制,采用低水位(low watermarks)机制避免因网络延迟等因素导致的数据流顺序不一致的问题。实时数据处理是近几年的热点,市面上已有的产品包括Storm,Spark Streaming,Yahoo S3,Samza等。与这四者的对比显示MillWheel基本上是这几种产品特性的整合。

< font-size: 16px;">了解了FlumeJava和MillWheel的基本概念和原理,我们就更容易理解Dataflow的运行机制和特性。Dataflow可以简单的认为是二者的集成,但是我相信Google肯定花费了大量的精力来优化二者以及与整个Google Cloud产品线的集成。

< font-size: 16px;">

< font-size: 16px;">上图是Dataflow的一个示例代码,开发了一个大家耳熟能详的Word Count应用。通过代码可以看出基于Dataflow编写并发的大数据处理管道更容易也更简单。通过Dataflow提供的SDK可以很方便的把改代码提交到云服务上执行,并通过Developer Console进行监控和管理。

< font-size: 16px;">小结:Google Dataflow是为了解决传统MapReduce应对复杂业务流程的困难并结合实时数据分析的需求而开发的云服务,给开发者提供了一个快速开发、测试、debug和生产运行、监控的SDK、工具及云服务,其本身没有怎么引流多创造性的理论或算法模型。由于是FlumeJava和MillWheel的集成,并可以调用Google Cloud提供的存储和Pub/Sub服务,因此可以在批处理和实时计算二者之间进行无缝地切换。目前的缺陷是版本还不稳定;Google Cloud本身提供的服务还比较少;发布时间尚短,没有一个较为成功的商业案例。但是,Google作为直接开启大数据潮流的先驱,其提供的大数据平台还是值得我们去研究和探索的。

< font-size: 16px;">版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

< font-size: 16px;">本文链接:https://blog.csdn.net/weixin_45932629/article/details/103315968

【干货】Google Cloud Dataflow:从原理到应用

上一篇:拥有数十万ins粉丝的企业,都知道这三个运营秘
下一篇:snapchat添加好友和过滤器功能如何使用?


版权声明:以上主题为“【干货】Google Cloud Dataflow:从原理到应用"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    【干货】Google Cloud Dataflow:从原理到应用
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“【干货】Google Cloud Dataflow:从原理到应用”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通【干货】Google Cloud Dataflow:从原理到应用的相关事宜。

关键词:【干货】Google,Cloud,Datafl

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号