当前位置:   article > 正文

minikube运行sparkPi_minikube spark-submit

minikube spark-submit

spark-on-k8s是spark执行任务的一种方式,当然还有spark-on-yarn等,本文讲述下spark-on-k8s的入门级操作流程,使用的是minikube来搭建单机版的k8s环境,好了废话不多说了,直接如主题:

1、安装minikube环境(本文用到的是1.15.1版本)

进入https://github.com/kubernetes/minikube/releases/tag/v1.15.1页面下载系统对应的minikube版本,博主用的是ubuntu系统,所以下载

minikube-linux-amd64文件即可

2、下载完minikube-linux-amd64后改名为minikube,放在/usr/local/bin目录下,通过chmod +x minikube赋予可执行特性,执行minikube version验证执行结果:

3、下载spark代码:https://downloads.apache.org/spark/,本文下载的是2.4.7版本

4、将下载的spark代码解压,进入对应目录(/home/spark/spark-2.4.7-bin-hadoop2.7),在spark主目录执行下面命令:

docker build -t registry.cn-hangzhou.aliyuncs.com/xxx/spark:2.4.7 -f  kubernetes/dockerfiles/spark/Dockerfile  .

5、将打包的spark对象推送到对应的docker仓库

6、使用minikube创建k8s环境:(6G内存,3个CPU),这个配置参考的是spark官网给出的推荐配置https://spark.apache.org/docs/latest/running-on-kubernetes.html

minikube --memory 6144 --cpus 3 start --image-mirror-country=cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers  --driver=none

当环境创建成功后通过kubectl get po -A获取pods

7、创建sparkPi运行环境

  1. # 创建spark明明空间
  2. kubectl create namespace spark
  3. # 创建service账户以及绑定角色
  4. kubectl create serviceaccount spark-serviceaccount --namespace spark
  5. kubectl create clusterrolebinding spark-rolebinding --clusterrole=edit --serviceaccount=spark:spark-serviceaccount --namespace=spark

8、在spark目录执行sparkPi脚本:

  1. ./bin/spark-submit \
  2. --master k8s://https://192.168.1.201:8443 \
  3. --deploy-mode cluster \
  4. --name spark-pi \
  5. --class org.apache.spark.examples.SparkPi \
  6. --conf spark.executor.instances=3 \
  7. --conf spark.kubernetes.namespace=spark \
  8. --conf spark.kubernetes.namespace=spark \
  9. --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark-serviceaccount \
  10. --conf spark.kubernetes.container.image.pullPolicy=Always \
  11. --conf spark.kubernetes.container.image=registry.cn-hangzhou.aliyuncs.com/jtl3d/spark:2.4.7 \
  12. local:///opt/spark/examples/jars/spark-examples_2.11-2.4.7.jar

master配置的地址通过kubectl cluster-info命令获取

9、查询执行结果,执行命令kubectl get po -A

查询到spark-pi-driver后执行命令查看执行结果:kubectl logs spark-pi-1606532060711-driver -n spark

 

参考文章:

1、https://gist.github.com/jjstill/8099669931cdfbb90ce6f4c307971514

2、https://spark.apache.org/docs/latest/running-on-kubernetes.html

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/734222
推荐阅读
相关标签
  

闽ICP备14008679号