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

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

在开始之前我们需要知道


什么是Kubernetes


Kubernetes(通常写成“k8s”)是最开始由google设计开发最后贡献给Cloud Native Computing Foundation的开源容器集群管理项目。它的设计目标是在主机集群之间提供一个能够自动化部署、可拓展、应用容器可运营的平台。Kubernetes通常结合docker容器工具工作,并且整合多个运行着docker容器的主机集群。



介绍


开源社区在过去一年中一直致力于为Kubernetes的数据处理,数据分析和机器学习工作负载提供支持。 Kubernetes中的新扩展功能(如自定义资源和自定义控制器)可用于创建与各个应用程序和框架的深度集成。


传统上,数据处理工作负载已经在像YARN / Hadoop堆栈这样的专用设置中运行。 但是,统一Kubernetes上所有工作负载的控制层可以简化群集管理并提高资源利用率。


51361411d62c1e96356789da42e16b25.jpg


带有原生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规则。

$ 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命令。

$ 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
...


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

$ 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等),他们花费了数百小时来完成这项工作。我们期待看到更多的人为该项目做出贡献并帮助其进一步发展。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
机器学习/深度学习 分布式计算 算法
Spark快速大数据分析PDF下载读书分享推荐
《Spark快速大数据分析》适合初学者,聚焦Spark实用技巧,同时深入核心概念。作者团队来自Databricks,书中详述Spark 3.0新特性,结合机器学习展示大数据分析。Spark是大数据分析的首选工具,本书助你驾驭这一利器。[PDF下载链接][1]。 ![Spark Book Cover][2] [1]: https://zhangfeidezhu.com/?p=345 [2]: https://i-blog.csdnimg.cn/direct/6b851489ad1944548602766ea9d62136.png#pic_center
367 1
Spark快速大数据分析PDF下载读书分享推荐
|
Kubernetes 监控 调度
在K8S中,DaemonSet类型资源特性?
在K8S中,DaemonSet类型资源特性?
|
11月前
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
289 1
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
307 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
Prometheus Kubernetes 监控
在K8S中,DaemonSet类型的资源特性有哪些?
在K8S中,DaemonSet类型的资源特性有哪些?
|
Kubernetes 负载均衡 网络协议
在K8S中,DNS组件有什么特性?
在K8S中,DNS组件有什么特性?
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
253 0
|
Prometheus Kubernetes 监控
在k8S中,DaemonSet类型的资源特性有哪些?
在k8S中,DaemonSet类型的资源特性有哪些?
|
存储 Kubernetes 网络协议
在K8s中,提供的DNS组件是什么?有什么特性?
在K8s中,提供的DNS组件是什么?有什么特性?
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
418 0

推荐镜像

更多