运行 spark on k8s
首先 已有一个1.8的k8s集群 我的是CentOS7
下载spark 2.4.0 - https://www.apache.org/dyn/closer.lua/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
wget 下载地址
tar -xzvf 压缩包名
How it works?然后参考官方文档 - http://spark.apache.org/docs/2.4.0/running-on-kubernetes.html#running-spark-on-kubernetes 注意里面的prerequisites
此处我们尝试 spark on k8s 的 cluster mode
首先
$ docker login
登陆注册过的dockerhub账户
然后在spark解压的目录下,打包和发布docker 镜像
$ ./bin/docker-image-tool.sh -r <repo> -t my-tag build
$ ./bin/docker-image-tool.sh -r <repo> -t my-tag push
<repo>我用的是docker id my-tag就是个tag名
之后可发现dockerhub里多了几个镜像
可以 docker pull morphtin/spark:sparkonk8s 下载我的镜像
To launch Spark Pi in cluster mode,
进入spark目录下,
$ bin/spark-submit \
--master k8s://https://<k8s-apiserver-host>:<k8s-apiserver-port> \
--deploy-mode cluster \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.executor.instances=5 \
--conf spark.kubernetes.container.image=<spark-image> \
local:///path/to/examples.jar
可通过以下命令查看apiserver的url
$ kubectl cluster-info
Kubernetes master is running at http://x.x.x.x:xxxx
此处我的是 k8s://http://localhost:8080
<spark-image>是运行的镜像 此处我用的是 morphtin/spark:sparkonk8s 与dockerhub一致
客户端模式运行spark详见官方文档