我正在尝试在小型独立群集(1个主节点和8个从节点)上设置Apache-Spark。我已经安装了基于Hadoop 2.4构建的spark 1.1.0的“预构建”版本。我在节点之间设置了无密码ssh并导出了一些必要的环境变量。其中一个变量(可能最相关)是:
export SPARK_LOCAL_DIRS=/scratch/spark/
我有一小段python代码,我知道它与Spark一起使用。我可以在本地运行它 - 在我的桌面上,而不是群集上 - 使用:
$SPARK_HOME/bin/spark-submit ~/My_code.py
我将代码复制到了群集中。然后,我从头节点开始所有进程:
$SPARK_HOME/sbin/start-all
每个从属服务器都列为进程xxxxx。
如果我然后尝试使用上面相同的命令运行我的代码:
$SPARK_HOME/bin/spark-submit ~/MY_code.py
我收到以下错误:
14/10/27 14:19:02 ERROR util.Utils: Failed to create local root dir in /scratch/spark/. Ignoring this directory.
14/10/27 14:19:02 ERROR storage.DiskBlockManager: Failed to create any local dir.
我在/scratch
和/scratch/spark
设置了权限777.非常感谢任何帮助。
答案 0 :(得分:4)
问题是我没有意识到主节点也需要一个临时目录。在我的8个工作节点中,我创建了本地/ scratch / spark目录,但忽略了在主节点上这样做。添加目录修复了问题。