Spark - java IOException:无法在/ tmp / blockmgr *中创建本地目录

时间:2016-12-20 08:50:16

标签: hadoop apache-spark apache-spark-sql

我试图运行一个长期运行的Spark Job。经过几个小时的执行,我在下面得到例外:

{{1}}

试图通过检查来解决这个问题:

  1. / tmp目录中的权限问题。 spark服务器未以root用户身份运行。但/ tmp目录应该可写给所有用户。

  2. / tmp Dir有足够的空间。

4 个答案:

答案 0 :(得分:3)

假设您正在使用多个节点,则需要检查每个节点是否参与火花操作(主/驱动程序+从属/节点/工作者)。

请确认每个工作人员/节点都有足够的磁盘空间(特别是检查/ tmp文件夹)和正确的权限。

答案 1 :(得分:0)

备份tmp缓存文件。清理tmp目录并启动您的shell。它会工作。同样的方法对我有用。

答案 2 :(得分:0)

编辑:以下答案最终并未解决我的问题。这是因为可以创建一些子文件夹(或某些依赖项),但并不是全部。创建此类路径的频繁必要性将使任何项目都不可行。因此,我以管理员身份运行了Spark(在我的情况下为PySpark),从而解决了该情况。因此,最终可能是权限问题。


原始答案:
我解决了本地 Windows 计算机(而不是群集)上的相同问题。由于权限没有问题,因此我创建了Spark无法创建的目录,即我以本地用户身份创建了以下文件夹,并且不需要更改该文件夹的任何权限。

C:\Users\<username>\AppData\Local\Temp\blockmgr-97439a5f-45b0-4257-a773-2b7650d17142

答案 3 :(得分:0)

确认所有权限和用户访问权限后。

在Talend studio中构建组件时遇到了相同的问题,并且通过在spark配置选项卡中的spark临时目录(临时目录)中提供正确的“ /”来解决该问题。在Windows中构建jar并在Linux群集中运行时,这是必需的。