凯发精英体育

谷歌发布Cloud Dataproc on K8s撬动大数据格局

作者:admin 发布时间:2019-09-29

  Cloud Dataproc如今可以在Kubernetes上运行,至少alpha测试版是这样。它听起来可能不是特具开创性,但如果你考虑为了把YARN换成Kubernetes on Cloud Datarpoc所做的工作,以及谷歌承诺会将昔日Hadoop架构的其他组件引入到Kubernetes领域,你就会意识到谷歌在做出多大的投入来更新改造整个大数据架构。

  YARN有什么问题?它是一种相当笨重的架构。一段时间以来,人们一直试图更换YARN。YARN最初是为了在裸机上运行而设计的,后经过改动可在虚拟机上运行,但YARN管理层的前进步伐不如K8s来得快,这促使许多客户对K8s颇有兴趣。

  客户在YARN方面存在几个痛点,眼下使用YARN中的容器虽好,但不是很好。它不是从头开始针对容器化工作负载设计的。

  直到今天,Cloud Dataproc像其他所有Hadoop发行版一样运行,无论在云端还是在本地。也就是说,Cloud Dataproc依赖YARN作为底层的工作负载和集群管理器。谷歌在该服务中提供的所有数据处理引擎:从Spark和MapReduce到Pig和Flink都依赖YARN来分发计算资源,防止工作负载发生冲突,就像其他云和本地Hadoop集群一样。

  谷歌客户依赖YARN,这可能令人惊讶,尤其是鉴于Kubernetes备受炒作,几乎每个人似乎都一致认为Kubernetes是YARN的继承人。毕竟,Kubernetes是在谷歌开发的,源自这个互联网巨头用来在自己的数据中心确保工作负载“循规蹈矩”的软件。

  你可能忍不住以为Kubernetes已经渗入到谷歌云中,谷歌公布的所有云服务都可以以Kubernetes承诺的精细化、永久可扩展的理想方式来运行。不过你那样想就错了。直到2019年初谷歌才宣布Kubernetes operator for Spark。这让客户得以在使用Kubernetes管理的谷歌云平台集群上运行Spark。但Cloud Dataproc不一样。

  与Cloudera的Hadoop发行版一样,Cloud Dataproc由众多开源组件组成,与Apache BigTop捆绑在一起。客户可以在GCP上随意运行几乎任何任务。但如果他们想要一款拥有集中安全、日志记录、服务级别协议(SLA)和出色管理控制台的大数据平台,那么就要关注像Cloud Dataproc或其他Hadoop产品这样的托管系列,比如AWS的Elastic MapReduce(EMR)或微软Azure的HDInsight。

  Apache Spark是一种集群计算框架,旨在用作面向ETL(提取、转换和加载)或数据科学应用的处理引擎。它常与Apache Hadoop结合使用,后者提供了用于管理资源的YARN(另一种资源协调者)和面向分布式数据存储的HDFS。

  采用Kuberentes需要在大数据架构的许多层面编写和测试大量的新代码,包括底层数据平台层面和单个引擎层面。

  但是改用Kubernetes的好处将体现在处理引擎之间更充分的隔离、Hadoop架构中互相依赖性减弱以及可扩展性加强。

  谷歌Cloud Dataproc及其他云产品的高级产品经理James Malone表示,谷歌有能力在各个层面予以帮助,包括单个开源项目。

  Malone说:“这从某种意义上来说是涉及两条战线的较量,我们在努力实现目标。对于托管服务来说,这是重大变化,但也在开源界带来了巨大变化,我们在积极开展开源工作。每个开源项目内部都需要大有作为。这就是为什么我们努力开这个头。”

  Malone告诉IT外媒Datanami:“我们选择这四个项目的原因之一是,它们不太依赖其他项目,因此它们的独立性强一点。它们先迁移到Kubernetes更容易一点。另外它们的人气超旺,这也很不错。我想,随着时间的推移,我们会开始关注如何让像Hive这样的技术在Kubernetes上也可以运行。”

  在平台层面,谷歌刚在Cloud Dataproc上完成了支持Kubernetes的第一次迭代。但Malone表示,这不是大规模的改变,因为谷歌承诺无限期支持YARN版本。

  他说:“我们仍会在可预见的未来很长时间内提供YARN版本的Dataproc。我们期望到时候许多客户会开始在Kubnerntes上进行更多的开发测试工作,到时会迎来一个拐点,即许多新的开发工作会在Kubernetes上进行。”

  Malone表示,事实上,谷歌正在努力确保YARN版本的Dataproc和Kubernetes版本的Dataproc在代码和兼容性方面尽可能接近,好让客户能够在两者之间来回切换。

  谷歌很重视让大数据社区采用Kubernetes,这引出了第三个因素:Anthos,这是它的本地运行时环境。Anthos基于Kubernetes,计划将来某个时候推出可以在Anthos上运行的Cloud Dataproc版本。

  Malone说:“Anthos是我们针对混合云和多云的长期战略中至关重要的一部分,而Anthos基于Kubernetes。因此我们让Dataproc正常工作、让所有开源组件在Dataproc上正常工作,这还为将来Dataproc在Anthos上运行铺平了道路,这一点对我们来说很重要,可为客户提供随地使用我们服务的那种灵活性。”

  按照Malone的说法,谷歌致力于通过支持让客户能够随意迁移的开放标准来帮助社区。这可能会削弱谷歌云的锁定,并减少收入,不过给整个社区带来了降低依赖性和复杂性的好处,这么做完全值得。

  他说:“我是Spark开发人员。假设我拿来我的Spark代码后,要在本地环境中的Dataproc、EMR或Cloudera上运行。我得考虑Hadoop架构中的所有组件是什么版本。我使用什么版本的操作系统?这个环境是什么样子的?我如何调整该集群以应对资源约束或可用性?”

  “如果我们改用Kubernetes,就会容易得多,因为我作为开发人员可以拿来我的代码,用需要的任何依赖项来打包代码,不用再操心老实讲对我来说其实不增值的东西。这为客户大大提高了灵活性。”

  通过结合Cloud Dataproc和Kubernetes,谷歌使数据科学家能够跨任何环境统一资源管理、隔离作业并构建弹性基础设施。开源工作负载的可移植性也大大加强。

  此外,Cloud Dataproc on Kubernetes提供了谷歌所说的“自愈合环境”;在这个环境中,基础设施管理任务都实现了自动化,比如集群的选型和搭建、Docker文件处理和网络配置。返回搜狐,查看更多