我正在尝试更改spark写入临时文件的位置。我在网上找到的所有东西都说要通过设置spark-env.sh
文件中的SPARK_LOCAL_DIRS
参数来设置它,但我没有幸运地看到这些更改真正生效。
下面是我所做的:
亚马逊
sparklyr
包作为前端。worker节点使用弹性伸缩组进行旋转。/tmp/jaytest
创建了一个存放临时文件的目录。在每个worker中有一个,在spark master计算机和两个worker中的master.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
参数设置为相同的目录,但也没有成功。
有人能告诉我这里可能遗漏了什么吗?
编辑:我将其作为独立集群运行(因为下面的答案表明要设置的正确参数取决于集群类型)。
发布于 2018-08-29 16:31:04
根据spark文档,它清楚地表明,如果您已经配置了Yarn集群管理器,那么它将覆盖spark-env.sh设置。您是否可以只检查Yarn-env或yarn-site文件中的本地目录文件夹设置。
这将由群集管理器设置的SPARK_LOCAL_DIRS (独立、Mesos)或LOCAL_DIRS (纱线)环境变量覆盖。来源- https://spark.apache.org/docs/2.3.1/configuration.html
发布于 2018-09-04 16:28:24
Mac env、spark-2.1.0和spark-env.sh包含:
export SPARK_LOCAL_DIRS=/Users/kylin/Desktop/spark-tmp
使用spark-shell,它可以工作。
您是否使用了正确的格式?
https://stackoverflow.com/questions/52068744
复制相似问题