目录

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 通信的问题。

/spark-2.2-on-k8s%E5%92%8Ckubernetes-v1.14/image_1e4auilv68h6dj2uff1jd7rtq9.png

相关 issue 和讨论地址:

  1. https://issues.apache.org/jira/browse/SPARK-28925
  2. https://andygrove.io/2019/08/apache-spark-regressions-eks/
  3. https://github.com/kubernetes/kubernetes/issues/82131

当然了,替换 jar 包之后,运行 SparkPi 是没问题的,但是如果给业务跑,我相信还有很多问题和坑,而且是没人愿意去解决的,所以…还是尽早摆脱 Spark 2.2 吧,本来 on K8S 的设计,2.3+ 跟 2.2 也区别很大了。

警告
本文最后更新于 2017年2月1日,文中内容可能已过时,请谨慎参考。