我正在尝试在Windows 10上安装独立的Spark。我想将spark.local.dir
设置为D:\spark-tmp\tmp
,因为当前它似乎正在使用C:\Users\<me>\AppData\Local\Temp
,在我的情况下是鉴于某些数据集的大小,SSD驱动器上可能没有足够的空间。
所以我将文件%SPARK_HOME%\conf\spark-defaults.conf
更改为以下文件,但没有成功
spark.eventLog.enabled true
spark.eventLog.dir file:/D:/spark-tmp/log
spark.local.dir file:/D:/spark-tmp/tmp
我也尝试运行%HADOOP_HOME\bin\winutils.exe chmod -R 777 D:/spark-tmp
,但是它没有任何改变。
我得到的错误如下:
java.io.IOException: Failed to create a temp directory (under file:/D:/spark-tmp/tmp) after 10 attempts!
如果我以file://D:/...
(注意双斜线)开头,则没有任何变化。如果我完全删除该方案,则另一个异常表明方案D:
无法识别。
我也注意到了这个警告:
WARN SparkConf:66 - In Spark 1.0 and later spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone and LOCAL_DIRS in YARN).
所以我尝试将以下行放在%SPARK_HOME%\conf\spark-env.sh
中:
SPARK_LOCAL_DIRS=file:/D:/spark-tmp/tmp
如果我将这一行放在spark.local.dir
文件中的.conf
行中,Spark可以正常工作,但是临时文件仍保存在我的AppData\Local\Temp
文件夹中。因此,SPARK_LOCAL_DIRS
行不会被读取。
奇怪的是,如果我让它运行,它实际上会将日志放入D:/spark-tmp/log
中,这意味着这不是语法或权限问题。
答案 0 :(得分:2)
在Windows上,您必须设置这些环境变量
添加键值对
julia> expr_equiv(:((a + b + b) * c), :((b + a + b) * c))
true
julia> expr_equiv(:((a + a + b) * c), :((b + a + b) * c))
false
julia> expr_equiv(:(c * (a + b + b)), :((b + a + b) * c), [:+, :*])
true
查看系统环境变量