【问题标题】:How to configure Spark spark_worker_opts for Jupyter notebooks如何为 Jupyter 笔记本配置 Spark spark_worker_opts
【发布时间】:2021-06-26 06:45:12
【问题描述】:

我在 Linux 上以独立模式使用 Pyspark 和 Spark 2.4,使用 Jupyter 笔记本(目前用于测试)通过 Kafka 处理大量传入数据。我想将这些选项添加到此笔记本中,以防止 /tmp/ 目录在几个小时后被数十 GB 填充:

spark.worker.cleanup.enabled=true
spark.worker.cleanup.appDataTtl=120

但是这些 conf 位置不起作用:

  1. Juypter 笔记本似乎根本不使用 Spark 的默认配置 (spark/conf/spark-env.sh):

SPARK_WORKER_OPTS="spark.worker.cleanup.enabled=true spark.worker.cleanup.appDataTtl=120"

  1. 所以,我在 ~/.local/share/jupyter/kernels/python3-spark1/kernel.json 中创建了一个单独的内核配置,我可以在 Jupyterhub 中选择它,它真正用于我可以看到的 RAM 调整htop:

“环境”:{ “PYSPARK_SUBMIT_ARGS”:“--主本地[*] --conf spark.worker.cleanup.enabled=true --conf=spark.worker.cleanup.appDataTtl=120 driver-memory 145g --executor-memory 50g pyspark-shell"

但 /tmp 仍然充满了几十个演出。

  1. 我还在 jupyter 单元中尝试了“魔法”,但也没奏效。

您知道如何正确配置 Jupyter 笔记本以进行此 Spark 调整吗?

【问题讨论】:

    标签: apache-spark pyspark jupyter-notebook jupyter jupyterhub


    【解决方案1】:

    仅适用于 "-Dx=y" 形式的工作人员的配置属性

    export SPARK_WORKER_OPTS="$SPARK_WORKER_OPTS -Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=60 -Dspark.worker.cleanup.appDataTtl=120"
    

    如果这不起作用,您可以尝试以下任何选项。

    选项 1: 更新 default.conf

    在 Worker 节点的 /spark/conf/spark-defaults.conf 文件中设置以下配置选项:

    • spark.worker.cleanup.enabled:启用定期清理工作程序和应用程序目录。默认禁用。设置为 true 以启用它。 注意:这只会影响独立模式,因为 YARN 的工作方式不同。
    • spark.worker.cleanup.interval:工作人员清理旧应用程序工作目录的频率,以秒为单位。默认值为 30 分钟。
    • spark.worker.cleanup.appDataTtl: 在每个工作人员上保留应用程序工作目录的秒数。默认值为 7 天。

    然后停止并启动工人。

    • sbin/stop-worker.sh - 停止执行脚本的机器上的所有工作实例。
    • sbin/start-worker.sh - 在执行脚本的机器上启动一个工作实例。

    选项 2:如果您使用 docker-compose 设置 spark 集群,则在 Docker compose 文件中设置环境

    spark-worker-x:
        image: spark-worker
        container_name: spark-worker-x
        environment:
          - SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=60 -Dspark.worker.cleanup.appDataTtl=120"
    

    【讨论】:

      猜你喜欢
      • 2017-07-24
      • 2021-06-14
      • 1970-01-01
      • 2017-09-24
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多