我有两台机器安装了相同的操作系统(RedHat 6.5 64位),但硬件配置不同。机器1(表示为M1
)具有网络访问权限,机器2(表示为M2
)没有网络访问权限。 M2
具有更强大的硬件(例如,更多CPU内核和更多内存)。现在,我想在Spark
中设置M2
环境。
我从官方github存储库下载了spark-2.0.0-preview
。我尝试编译它,但由于没有网络访问它不起作用。谷歌搜索后,我找到了this post。所以我转向M1
来编译spark-2.0.0-preview
包。编译命令为./build/mvn -DskipTests clean package
。它显示BUILD SUCCESS
。然后,我将整个spark-2.0.0-preview
目录和~/.m2/*
中的M1
复制到M2
中的相应位置。
在M2
中,我可以运行./bin/run-example SparkPi
,我认为M1
中的内置库也可以在M2
中正常运行。但是,当我运行命令./build/mvn -DskipTests clean package
尝试在M2
中构建本地化库时,它显示错误:
[info] Error occurred during initialization of VM
[info] java.lang.Error: Properties init: Could not determine current working directory.
[info] at java.lang.System.initProperties(Native Method)
[info] at java.lang.System.initializeSystemClass(System.java:1166)
[info]
[error] Compile failed at May 19, 2016 1:43:09 AM [0.425s]
我意识到如果命令中的clean
导致问题。 clean
表示mvn
将在上一次编译期间删除临时文件。因此我尝试了另一个命令./build/mvn -DskipTests package
。但错误仍然存在。
我有两个问题:
spark-2.0.0-preview
中构建的M1
库是否适合M2
?Spark
时是否有任何编译命令可以保留所有临时文件?因此,我们可以简单地将所有文件复制到另一台机器中以重用它们。