如何使用spark-env.sh文件设置SPARK_LOCAL_DIRS参数

问题描述 投票:5回答:2

我试图改变火花写临时文件的位置。我在网上找到的所有内容都说通过在SPARK_LOCAL_DIRS文件中设置spark-env.sh参数来设置它,但我没有任何运气实际生效。

这就是我所做的:

  1. 使用Amazon EC2实例创建了一个2工作组测试集群。我使用spark 2.2.0和R sparklyr包作为前端。使用自动缩放组旋转工作节点。
  2. 创建了一个目录,用于在/tmp/jaytest中存储临时文件。每个工人中都有一个,主人中有一个。
  3. 推入火花主机和两名工人,导航到home/ubuntu/spark-2.2.0-bin-hadoop2.7/conf/spark-env.sh,并修改文件以包含这一行:SPARK_LOCAL_DIRS="/tmp/jaytest"

每个spark-env.sh文件的权限是-rwxr-xr-x,jaytest文件夹的权限是drwxrwxr-x

据我所知,这符合我在网上阅读的所有建议。但是,当我将一些数据加载到集群中时,它仍然以/tmp而不是/tmp/jaytest结束。

我也尝试将spark.local.dir参数设置到同一目录,但也没有运气。

有人可以告诉我这里可能缺少什么吗?

编辑:我将其作为独立群集运行(因为下面的答案表明要设置的正确参数取决于群集类型)。

apache-spark sparklyr
2个回答
1
投票

Mac env,spark-2.1.0和spark-env.sh包含:

export SPARK_LOCAL_DIRS=/Users/kylin/Desktop/spark-tmp

使用spark-shell,它可以工作。

你使用了正确的格式吗?


0
投票

根据spark文档,很明显,如果您已配置Yarn Cluster manager,那么它将覆盖spark-env.sh设置。您可以在Yarn-env或yarn-site文件中检查本地目录文件夹设置。

“这将由集群管理器设置的SPARK_LOCAL_DIRS(Standalone,Mesos)或LOCAL_DIRS(YARN)环境变量覆盖。”来源 - https://spark.apache.org/docs/2.3.1/configuration.html

© www.soinside.com 2019 - 2024. All rights reserved.