就像之前写过很多关于 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 和讨论地址:
1. https://issues.apache.org/jira/browse/SPARK-28925
2. https://andygrove.io/2019/08/apache-spark-regressions-eks/
3. Error while submitting spark jobs on k8s V1.14.6 · Issue #82131 · kubernetes/kubernetes
当然了,替换 jar 包之后,运行 SparkPi 是没问题的,但是如果给业务跑,我相信还有很多问题和坑,而且是没人愿意去解决的,所以...还是尽早摆脱 Spark 2.2 吧,本来 on K8S 的设计,2.3+ 跟 2.2 也区别很大了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31509949/viewspace-3124362/ ,如需转载,请注明出处,否则将追究法律责任。