Google宣布为Spark推出Kubernetes Operator

“Spark Operator”测试版允许在Kubernetes集群上执行原生Spark应用程序,不需要Hadoop或Mesos。

Apache Spark是一个非常流行的执行框架,通常用在数据工程和机器学习领域。支撑Databricks 平台的即是Apache Spark,Spark可部署在企业内部数据中心或者基于云的Hadoop 服务上,如Azure HDInsight 、Amazon EMR 和Google Cloud Dataproc 。当然,也可以部署在Mesos 集群上。

无需Mesos,也没有Hadoop YARN集群,你想要在Kubernetres(k8s)集群上运行你的Spark工作负载吗?虽然Spark早在2.3版本中就增加了专门针对Kubernetes的功能,并在2.4版本中进行了改进,但是以完全集成的方式在k8s上运行原生Spark仍然是一个挑战。

一、Kube operator

今天,创建了Kubernetes的Google首先宣布推出针对Apache Spark的Kubernetes Operator测试版,简称“Spark operator”。Spark Operator允许在k8s集群上运行原生Spark,从而允许Spark应用程序,无论是用于分析、数据工程还是机器学习——就像任何Spark实例一样部署到这些集群。


Google宣布为Spark推出Kubernetes Operator

Spark Operator架构

根据Google的说法,Spark Operator是一个Kubernetes自定义控制器,它使用自定义资源 (CRDs)来处理Spark应用程序的声明性规范;它还支持自动重启和基于cron 的计划性批处理应用。此外,开发人员、数据工程师和数据科学家可以创建描述其Spark应用程序的声明性规范,并使用原生Kubernetes工具(例如kubectl )来管理其应用。

二、Spark现状

在Google Cloud Platform(GCP)的Kubernetes市场上,通过 Google Click to Deploy容器的形式即可使用Spark Operator,从而可以轻松将Spark部署到Google Kubernetes Engine(GKE)。但Spark Operator是一个开源项目,可以部署到任何Kubernetes环境,项目的GitHub站点(https://github.com/GoogleCloudPlatform/spark-on-k8s-operator)提供了基于Helm charts的命令行安装说明。

看看亚马逊和微软等公司是否拥抱并为自己的Kubernetes服务(分别为Elastic Container Service/EKS和Azure Kubernetes Service / AKS)提供Spark Operator的简单部署将会很有趣。这种做法,对于不希望承担EMR、HDInsight或Databricks工作空间和集群开销的客户来说,肯定是一项很好的服务。

三、Hadoop怎么办呢?

由于很多非Databricks 的Spark集群实际上都运行在Hadoop上,因此Spark Operator的发布引发了Hadoop的影响是否正在减弱的问题。不过,Hadoop团队到是也没坐以待毙。例如,Open Hybrid Architecture Initiative 项目就在专注于Hadoop的容器化。此外,Hadoop 3.2 上周刚刚发布 ,除其他功能外,还包括了对Tensorflow 的 原生支持,与Azure Data Lake Storage Gen2的新连接以及增强与Amazon S3 存储的连接。

历史总是相似的,这种技术之间的激励竞争,最终受益的必然还是客户!

原文链接:

https://www.zdnet.com/google-amp/article/google-announces-kubernetes-operator-for-apache-spark/

山金孝 译


分享到:


相關文章: