1.环境准备
- Java环境
- k8s集群
- k8s中rbac权限
2.下载安装包
进入spark首页中下载spark,当前3.x的新版本暂时还没有hibench适配,最好选择2.x的版本
3.配置环境
将下载后的压缩包解压,进入/etc/profile中配置spark的路径,保存退出后source /etc/profile
4.编译spark镜像及上传到仓库
进入spark目录
$ ./bin/docker-image-tool.sh -r <repo> -t my-tag build
$ ./bin/docker-image-tool.sh -r <repo> -t my-tag push
以我的环境为例,hub.atguigu.com/library是仓库地址,安装的spark版本为2.4.7
$ ./bin/docker-image-tool.sh -r hub.atguigu.com/library -t v2.4.7 build
$ ./bin/docker-image-tool.sh -r hub.atguigu.com/library -t v2.4.7 push
5.运行测试代码
$ ./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:///opt/spark/examples/jars/spark_examples_2.11-2.2.0.jar
这个local://是指在镜像中examples.jar的位置,并不是指本机位置
6.运行本机的测试文件
由于k8s是以集群方式运行,运行本机文件不能单单只有一个节点有,所以我们需要安装hdfs,将本机文件上传到hdfs中,hdfs集群安装
安装完成后配置hdfs的位置即可
./bin/spark-submit \
--master k8s://https://192.168.66.30:6443 \
--deploy-mode cluster \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.executor.instances=5 \
--conf spark.kubernetes.container.image=hub.atguigu.com/library/spark:v3.0.2 \
--conf spark.kubernetes.file.upload.path=hdfs://192.168.66.30:9000/user/root/sparkdata \
file:///usr/local/spark-k8s/spark-new/examples/jars/spark-examples_2.12-3.0.2.jar