Spark History Server running on k8s
Spark History Server(SHS)是一个无状态服务,只要eventlog没有丢失,SHS重启或者切换是不会受到影响的。当然当我们开启了SHS的磁盘缓存的时候,如果SHS换了node启动,缓存可能就会丢失,但是SHS可以根据eventlog重新生成缓存,因此我们可以认为他是一个无状态服务。这样的服务在K8s上可以很容易的进行部署,本文将介绍如何把SHS部署到8s上,分享一下可能遇到的问题。
SHS image准备
Spark暂时还没有提供官方的spark docker image,所以我们需要自己准备好这个image。不过官方有提供build image的脚本,所以自己做image还是很方便的。
- spark code download
git clone https://github.com/apache/spark.git
- build spark with K8s
./build/mvn -Pkubernetes -DskipTests clean package
- build docker image
spark提供了bin/docker-image-tool.sh这个脚本,可以直接用它来构建你的image,这个image不仅仅可以用来跑SHS也可以用来跑spark job,但是这个是非常基础的image,如果你有一些定制需求,可以尝试修改这个脚本。比如需要有default config,例如你可以再spark repo下创建一