如何在 yarn 上为 spark job 运行 更改 java.io.tmpdir

How to change java.io.tmpdir for spark job running on yarn

如何在 YARN 上为我的 Hadoop 3 集群 运行 更改 java.io.tmpdir 文件夹?

默认情况下它会得到类似 /tmp/*** 的东西,但是我的 /tmp 文件系统对于 YARN 作业将写入的所有内容来说都太小了。

有办法改变吗?

我在core-site.xml里也设置了hadoop.tmp.dir,不过貌似,并没有真正用到。

可能是 What should be hadoop.tmp.dir ? 的副本。此外,浏览 /etc/hadoop/conf 中的所有 .conf 并搜索 tmp,看看是否有任何内容是硬编码的。同时指定:

  • 您是否看到(任何)文件被创建 @ 您指定为 hadoop.tmp.dir 的内容。
  • 应用您的更改后,@ /tmp/** 正在形成什么样的文件模式。

我还注意到配置单元在 /tmp 中创建文件。所以,你也可以看看@hive-site.xml。与您正在使用的任何其他生态系统产品类似。

我在yarn-site.xml中配置了yarn.nodemanager.local-dirs属性并重启了集群。在 spark 停止使用 /tmp 文件系统并使用目录后,在 yarn.nodemanager.local-dirs 中配置。 java.io.tmpdir 属性 for spark executors 也被设置为在 yarn.nodemanager.local-dirs 属性 中定义的目录。

<property>
      <name>yarn.nodemanager.local-dirs</name>
      <value>/somepath1,/anotherpath2</value>
</property>