Apache spark 在Kubernetes中公开Spark Worker(stdout-stderr)日志
我有一个Spark集群,在一个3节点的Kubernetes集群中运行一个主集群和4个工作集群。 Spark UI和Master通过入口/节点端口公开,因此可以从Kubernetes集群外部访问 但是,工作端口不暴露。 因此,无法通过UI访问工作日志(stdout和stderr)。 日志URL被重定向到Apache spark 在Kubernetes中公开Spark Worker(stdout-stderr)日志,apache-spark,kubernetes,Apache Spark,Kubernetes,我有一个Spark集群,在一个3节点的Kubernetes集群中运行一个主集群和4个工作集群。 Spark UI和Master通过入口/节点端口公开,因此可以从Kubernetes集群外部访问 但是,工作端口不暴露。 因此,无法通过UI访问工作日志(stdout和stderr)。 日志URL被重定向到,等等 我的设置是在同一台机器上运行两个工作机吊舱。因此,即使我NodePort暴露了工作进程,端口也会发生冲突,因为将为机器上的两个工作进程分配相同的端口。 Spark History serve
,
等等
我的设置是在同一台机器上运行两个工作机吊舱。因此,即使我NodePort暴露了工作进程,端口也会发生冲突,因为将为机器上的两个工作进程分配相同的端口。
Spark History server仅提供事件日志,不提供工作日志
如何解决这个问题?有没有一种方法可以动态地为WORKER分配NodePort值我相信您所说的是
SPARK\u WORKER\u WEBUI\u端口
,而不是下面描述的SPARK\u WORKER\u端口
,因为它分配了一个随机端口
这有点棘手,因为每个节点只能公开一个端口。如果每个节点有两个spark WORKER,则可以为节点创建两个部署,一个在8081
上公开spark\u WORKER\u WEBUI\u端口,另一个在8082
上公开,还可以确保每个节点只调度一个pod
您可以在中传递这些值,我知道这一点。但我们的要求限制了我们每台机器只能有一名工人。这就是问题所在。谢谢。但这并不是我们想要的for@RamKrishnan-同意-最大的好处是在一个节点上挤压许多工人。你找到解决这个问题的方法了吗?你是在库伯内特斯上运行spark的吗?有了他们的内置操作员?你能找到一种方法将stdout、stderr公开给历史服务器吗?