如何为jupyter笔记本配置spark\u worker\u opts

0mkxixxg  于 2021-07-09  发布在  Spark
关注(0)|答案(1)|浏览(509)

我在linux上以独立模式使用pyspark和spark2.4,通过kafka使用jupyter笔记本(目前正在测试)处理大量传入的数据。我想将这些选项添加到此笔记本中,以防止/tmp/目录在几个小时后充满几十GB:

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

但这些位置不起作用:
spark的默认配置(spark/conf/spark env.sh)似乎根本没有被juypter笔记本使用:
spark\u worker\u opts=“spark.worker.cleanup.enabled=true spark.worker.cleanup.appdatattl=120”
因此,我在~/.local/share/jupyter/kernels/python3-spark1/kernel.json中创建了一个sperate内核配置,我可以在jupyterhub中选择它,它真正用于ram调整,我可以在htop中看到:
“env”:{“pyspark\u submit\u args”:“--主本地[*]--conf spark.worker.cleanup.enabled=true--conf=spark.worker.cleanup.appdatattl=120驱动程序内存145g--执行器内存50g pyspark shell”
但是/tmp仍然有几十场演出。
我也在jupyter牢房里试过这个“魔法”,但也没用。
你知道如何正确配置jupyter笔记本电脑吗?

ymzxtsji

ymzxtsji1#

仅应用于窗体中的辅助进程的配置属性 "-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"

相关问题