小编Pin*_*lue的帖子

Spark/k8s:如何使用客户端模式在 Kubernetes 上运行 spark提交

我正在尝试在 kubernetes pod 中使用spark-submitwithclient模式向 EMR 提交作业(由于其他一些基础设施问题,我们不允许使用cluster模式)。默认情况下,spark-submit使用hostname该吊舱作为的spark.driver.hosthostname为主机的主机名,以便spark executor解决不了它。并且spark.driver.portpod(容器)也是本地的。

我知道一种将一些 confs 传递给的方法,spark-submit以便spark executor可以与driver,这些配置是:

--conf spark.driver.bindAddress=0.0.0.0 --conf spark.driver.host=$HOST_IP_OF_K8S_WORKER --conf spark.driver.port=32000 --conf spark.driver.blockManager.port=32001

并在 kubernetes 中创建一个服务,以便spark executor可以与driver

apiVersion: v1
kind: Service
metadata:
  name: spark-block-manager
  namespace: my-app
spec:
  selector:
    app: my-app
  type: NodePort
  ports:
    - name: port-0
      nodePort: 32000
      port: 32000
      protocol: TCP
      targetPort: 32000
    - name: …
Run Code Online (Sandbox Code Playgroud)

docker apache-spark kubernetes

6
推荐指数
1
解决办法
2183
查看次数

标签 统计

apache-spark ×1

docker ×1

kubernetes ×1