Spark2.3.0+Kubernetes应用程序部署
Spark可以运行在Kubernetes管理的集群中,利用Native Kubernetes调度的特点已经被加入Spark。目前Kubernetes调度是实验性的,在未来的版本中,Spark在配置、容器映像、入口可能会有行为上的变化。
(1) 先决条件。
- 运行在Spark 2.3 或更高版本上。
- 运行Kubernetes cluster 1.6以上版本,访问配置为使用kubectl。如果不止一个Kubernetes集群,可以使用minikube在本地设置一个测试集群。
- 建议使用DNS插件的minikube最新版本。
- 注意,默认minikube配置不够运行Spark的应用,推荐使用3 CPUs、4G内存的配置,能够启动包含一个Executor的Spark应用程序。
- 必须有适当的权限在集群中列表,创建,编辑和删除Pods,通过kubectl auth can-i<list|create|edit|delete> pods可以列出这些资源。Driver Pods使用的服务帐户凭据必须允许创建Pods、服务和配置configmaps。
- 在集群配置Kubernetes DNS。
(2) 工作原理。Kubernetes工作原理如图2-1所示。
图 2- 1 Kubernetes原理图
Spark-Submit可直接提交Spark应用到Kubernetes集群ÿ