Spark-2.2-on-K8S和Kubernetes-v1.14
目录
概述
就像之前写过很多关于 Spark on K8S 的文章,Spark 2.2 是 Fork 出来的版本,虽然经受住了我们部门超大规模的 Spark 计算业务的考验,但是由于 Spark 社区很快就在 2.3 跟进了 on K8S 的模块,所以 Spark 2.2 是很早就被废弃并且不维护的,所以如果此时还想用 Spark 2.2 上生产环境,是非常危险的,因为很多 Bug,是得不到反馈的,所以建议用户都放弃 Spark 2.2 on K8S 的方案吧。
近期我们业务遇到一个问题,也是跟 Spark 2.3/2.4 类似的问题,因为 Kubernetes 的版本更新迭代非常快,很多公司内部的 K8S 版本不太可能一直保持跟社区一样的节奏,落后好几个小版本是常有的事情,比如说我们目前还有 v1.8 的内部版本,里面很多特性跟最新版的设计可以说是非常不同的。
再说说问题本身,大概就是 Kubernetes 的 Java Client 跟 Api Server 通信的问题。

相关 issue 和讨论地址:
- https://issues.apache.org/jira/browse/SPARK-28925
- https://andygrove.io/2019/08/apache-spark-regressions-eks/
- https://github.com/kubernetes/kubernetes/issues/82131
当然了,替换 jar 包之后,运行 SparkPi 是没问题的,但是如果给业务跑,我相信还有很多问题和坑,而且是没人愿意去解决的,所以…还是尽早摆脱 Spark 2.2 吧,本来 on K8S 的设计,2.3+ 跟 2.2 也区别很大了。
警告
本文最后更新于 2017年2月1日,文中内容可能已过时,请谨慎参考。