Apache Spark 3.0 不同操作系统网络驱动
Apache Spark 3.0 Different Operating Systems Network Drive
我通过 SSH 在多节点集群上设置了 Apache Spark 3.0
。
我正在使用一个网络驱动器,所有节点都已连接到该驱动器,但是 Mac OSX
上的文件目录与失败的 Ubuntu
上的文件目录不同。
例如MAC OsX
通过/Volumes/<Drive>
访问网络驱动器
Ubuntu
通过/run/user/1000/gvfs/<Drive>
访问网络驱动器
这样做的问题是,如果使用 Mac 作为主机并告诉它读取 network driver
,其他机器将无法访问它,即使它们都连接到它所以它因 Ubuntu 节点上的故障而出错。有没有办法我可以有相同的地址,所以所有的机器都可以在 pyspark
.
中解释它
只需在所有机器上创建指向相同位置的符号链接,并使用该符号链接而不是实际位置。像这样:
mkdir /some/location
OS_NAME=$(uname -s)
if [ "$OS_NAME" = "Darwin" ]; then
ln -s /Volumes/<Drive> /some/location/drive
elif [ "$OS_NAME" = "Linux" ]; then
ln -s /run/user/1000/gvfs/<Drive> /some/location/drive
else
echo "Unsupported OS"
fi
我通过 SSH 在多节点集群上设置了 Apache Spark 3.0
。
我正在使用一个网络驱动器,所有节点都已连接到该驱动器,但是 Mac OSX
上的文件目录与失败的 Ubuntu
上的文件目录不同。
例如MAC OsX
通过/Volumes/<Drive>
访问网络驱动器
Ubuntu
通过/run/user/1000/gvfs/<Drive>
访问网络驱动器
这样做的问题是,如果使用 Mac 作为主机并告诉它读取 network driver
,其他机器将无法访问它,即使它们都连接到它所以它因 Ubuntu 节点上的故障而出错。有没有办法我可以有相同的地址,所以所有的机器都可以在 pyspark
.
只需在所有机器上创建指向相同位置的符号链接,并使用该符号链接而不是实际位置。像这样:
mkdir /some/location
OS_NAME=$(uname -s)
if [ "$OS_NAME" = "Darwin" ]; then
ln -s /Volumes/<Drive> /some/location/drive
elif [ "$OS_NAME" = "Linux" ]; then
ln -s /run/user/1000/gvfs/<Drive> /some/location/drive
else
echo "Unsupported OS"
fi