Apache Spark 2.3 加入支持Native Kubernetes及新特性文档下载

问题导读 1.什么是Kubernetes? 2.在Kubernetes集群尝试新功能,该如何实现? 3.观看群集上创建的Spark资源,该如何操作? 在开始之前我们需要知道 什么是Kubernetes Kubernetes(通常写成“k8s”)是最开始由google设计开发最后贡献给Cloud Native Computing Foundation的开源容器集群管理项目。它的设计目标是在主机集群之间提供一个能够自动化部署、可拓展、应用容器可运营的平台。Kubernetes通常结合docker容器工具工作,并且整合多个运行着docker容器的主机集群。 介绍 开源社区在过去一年中一直致力于为Kubernetes的数据处理,数据分析和机器学习工作负载提供支持。 Kubernetes中的新扩展功能(如自定义资源和自定义控制器)可用于创建与各个应用程序和框架的深度集成。 传统上,数据处理工作负载已经在像YARN / Hadoop堆栈这样的专用设置中运行。 但是,统一Kubernetes上所有工作负载的控制层可以简化群集管理并提高资源利用率。

带有原生Kubernetes支持的Apache Spark 2.3结合了两个着名的开源项目中, large-scale 数据处理框架; 和Kubernetes。 Apache Spark是数据科学家必不可少的工具,为从大规模数据转换到分析到机器学习的各种应用提供强大的平台。 数据科学家们一致采用容器,通过实现诸如依赖性打包和创建可重现的构件等好处来改进其工作流程。 考虑到Kubernetes是管理集装箱环境的事实标准,在Spark中支持Kubernetes API是非常合适的。 具体而言,Kubernetes中的本地Spark应用程序充当自定义控制器,该应用程序创建Kubernetes资源以响应Spark调度程序发出的请求。 与在Kubernetes中以独立模式部署Apache Spark相反,本地方法提供了对Spark应用程序的精细管理,提高了弹性,并与日志记录和监视解决方案无缝集成。 该社区还在探索高级用例,如管理流式工作负载和利用Istio等服务网格。 要在Kubernetes集群上自己尝试,只需下载官方Apache Spark 2.3发行版的二进制文件即可。 例如,下面我们描述运行一个简单的Spark应用程序来计算三个Spark执行程序之间的数学常量Pi,每个执行程序在一个单独的窗格中运行。 请注意,这需要运行Kubernetes 1.7或更高版本的集群,配置为访问它的kubectl客户端,以及缺省命名空间和服务帐户所需的RBAC规则。

[Bash shell] 纯文本查看 复制代码

?

$ kubectl cluster-info
Kubernetes master is running at https://xx.yy.zz.ww
 
$ bin/spark-submit \
    --master k8s://https://xx.yy.zz.ww \
    --deploy-mode cluster \
    --name spark-pi \
    --class org.apache.spark.examples.SparkPi \
    --conf spark.executor.instances=5 \
    --conf spark.kubernetes.container.image=<spark-image> \
    --conf spark.kubernetes.driver.pod.name=spark-pi-driver \
    local:///opt/spark/examples/jars/spark-examples_2.11-2.3.0.jar

要观看群集上创建的Spark资源,可以在单独的终端窗口中使用以下kubectl命令。

[Bash shell] 纯文本查看 复制代码

?

$ kubectl get pods -l 'spark-role in (driver, executor)' -w
NAME              READY     STATUS    RESTARTS   AGE
spark-pi-driver   1/1       Running   0          14s
spark-pi-da1968a859653d6bab93f8e6503935f2-exec-1   0/1       Pending   0         0s
...

结果可以在作业执行期间通过运行流式传输:

[Bash shell] 纯文本查看 复制代码

?

$ kubectl logs -f spark-pi-driver

当应用程序完成时,您应该在驱动程序日志中看到Pi的计算值。 在Spark 2.3中,我们首先支持用Java和Scala编写的Spark应用程序,并支持从各种数据源(包括HTTP,GCS,HDFS等)进行资源本地化。 我们还密切关注Spark执行者的失败和恢复语义,为未来的发展打下坚实的基础。 立即开始使用开源文档(https://spark.apache.org/docs/latest/running-on-kubernetes.html)。 参与 在不久的将来有很多令人兴奋的工作要做。我们正在积极研究诸如动态资源分配,依赖关系的群集分段,对PySpark&SparkR的支持,对Kerberized HDFS集群的支持以及客户端模式和流行笔记本的交互式执行环境等功能。对于爱上Kubernetes以声明方式管理应用程序的方式的人们,我们也一直致力于Kubernetes Operator的spark-submit,它允许用户声明式地指定和提交Spark应用程序。 我们刚刚开始!我们希望您能参与并帮助我们进一步发展项目。 加入spark-dev和spark-user邮件列表[https://spark.apache.org/community.html]。 在Kubernetes组件下的Apache Spark JIRA[https://issues.apache.org/jira/issues/?jql=project+%3D+SPARK+AND+component+%3D+Kubernetes]中提出问题。 周三早上10点参加我们的SIG会议[https://github.com/kubernetes/community/tree/master/sig-big-data]。 非常感谢Apache Spark和Kubernetes的贡献者分布在多个组织(Google,Databricks,Red Hat,Palantir,Bloomberg,Cloudera,PepperData,Datalayer,HyperPilot等),他们花费了数百小时来完成这项工作。我们期待看到更多的人为该项目做出贡献并帮助其进一步发展。

原文发布于微信公众号 - about云(wwwaboutyuncom)

原文发表时间:2018-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何为Hadoop集群选择正确的硬件

当我们想搭建一个Hadoop大数据平台时,碰到的第一个问题就是我们到底该如何选择硬件。

75350
来自专栏数据派THU

独家 | 一文读懂Hadoop(一):综述

随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识。2017年年初apache发...

42080
来自专栏SDNLAB

SDNLAB技术分享(十五):容器网络大观

一、容器网络概述 容器这一两年火的不行,可以说是独领IT风骚,一时风光无二。相比于虚拟机来说,容器更轻,一台服务器上可以运行成百上千的容器,这意味着更为密集的计...

47780
来自专栏CSDN技术头条

你是否需要一个容器专用的Linux发行版本?

图片来自:lickr/Jonas Smith 单单使用容器是不够的,提供商们认为你需要一个容器专用的Linux发行版本。 我们可以让容器在不同的操作系统上运行,...

21290
来自专栏CSDN技术头条

自学大数据:用以生产环境的Hadoop版本比较

一、背景介绍 生产环境中,hadoop的版本选择是一个公司架构之时,很重要的一个考虑因素。这篇文章根据就谈谈现在主流的hadoop版本的比较。如果有不同意见,或...

29550
来自专栏北京马哥教育

深入浅出Docker(一):Docker核心技术预览

【编者按】Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apach...

37440
来自专栏加米谷大数据

大数据开发最火的核心技术-Kafka

大数据时代来临,如果你还不知道Kafka那你就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP1...

21820
来自专栏about云

搭建hadoop集群必参考的文章:为Hadoop集群选择合适的硬件配置

问题导读 1.哪些情况会遇到io受限制? 2.哪些情况会遇到cpu受限制? 3.如何选择机器配置类型? 4.为数据节点/任务追踪器提供的推荐哪些规格? 随着Ap...

47670

容器技术,还处在起点阶段

容器,Docker,Kubernetes,这些技术已经被使用了四年左右。有些人甚至开始认为这项技术已经成熟了!但我强烈认为,容器基础设施的实现还处于一个成长的阶...

24870
来自专栏技术翻译

Kubernetes的五大关键云技术

Kubernetes采用率是开源软件历史上最快的吗?很可能。根据CNCF,Kubernetes现在是仅次于Linux的全球第二大开源项目。

18330

扫码关注云+社区

领取腾讯云代金券