我想在 Amazon EMR 中挂载 Workspace 目录或解决错误“Unable to mount the workspace”(无法挂载 Workspace)。
解决方法
挂载 Workspace 目录
要将 Workspace 目录挂载到集群,请在 Amazon EMR 中使用 %mount_workspace_dir magic 命令。使用此命令时,可以在挂载 Workspace 目录时从 Workspace 中的其他文件导入并运行代码。
解决错误“Unable to mount the workspace”(无法挂载 Workspace)
使用 %mount_workspace_dir magic 命令挂载 Workspace 时,您可能会收到以下错误:
“UsageError: Unable to mount the Workspace. stdout= stderr=fuse: unknown option compat_dir”(UsageError:无法挂载 Workspace。stdout= stderr=fuse: unknown option compat_dir)
“UsageError: S3-fuse is not installed”(UsageError:S3-fuse 未安装)
要解决上述错误,请使用以下方法之一:
Install s3fs-fuse
如果您使用的是 Amazon EMR 发行版 5.3.x 或 6.x,请完成以下步骤:
- 使用您的 Spark、Livy 和 Jupyter 企业网关应用程序设置 Amazon EMR 集群、Workspace 和 Spark magic。有关详细信息,请参阅使用 magic 命令增强内核。
- 使用 SSH 连接到 Amazon EMR 集群节点。
- 安装 s3fs-fuse:
sudo amazon-linux-extras install epel -y
sudo yum install s3fs-fuse -y
如果您使用的是 Amazon EMR 发行版 7.x,请完成以下步骤:
-
要安装 s3fs-fuse,请参阅 GitHub 网站上的 s3fs-fuse。或者运行以下命令:
sudo yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel -y
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh
./configure --prefix=/usr --with-openssl
make
sudo make install
-
安装 emr-notebooks-magics:
**注意:**在安装 Amazon EMR Notebooks magic 之前,请参阅使用 magic 命令增强内核。
%pip install emr-notebooks-magics --upgrade
-
将 Workspace 目录挂载到 Notebook 中:
%mount_workspace_dir.
**注意:**对于 Amazon EMR 版本 6.0 到 6.9.0 以及 5.0 到 5.36.0,只有 emr-notebooks-magics 软件包版本 0.2.0 及更高版本支持 %mount_workspace_dir magic 命令。
-
确认您的 Workspace 目录已成功挂载:
%%sh
ls
安装 s3fs 软件包
要安装 s3fs 软件包,请运行以下命令:
wget https://rpmfind.net/linux/epel/8/Everything/aarch64/Packages/s/s3fs-fuse-1.93-1.el8.aarch64.rpm -P /home/hadoop/;sudo yum localinstall /home/hadoop/s3fs-fuse-1.93-1.el8.aarch64.rpm -y;rm /home/hadoop/s3fs-fuse-1.93-1.el8.aarch64.rpm
您会收到以下输出:
--2024-05-12 15:49:13-- https://rpmfind.net/linux/epel/8/Everything/aarch64/Packages/s/s3fs-fuse-1.93-1.el8.aarch64.rpm
Resolving rpmfind.net (rpmfind.net)... 195.220.108.108
Connecting to rpmfind.net (rpmfind.net)|195.220.108.108|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 292036 (285K) [application/x-rpm]
Saving to: "/home/hadoop/s3fs-fuse-1.93-1.el8.aarch64.rpm"
上述命令从 EPEL 存储库中下载 s3fs-fuse 软件包版本,安装下载的版本,然后清理下载的文件。有关详细信息,请参阅 RPM 查找网站上的 RPM 资源 s3fs-fuse(aarch-64)。另请参阅 Red Hat 网站上的如何使用 yum 安装本地 rpm 文件?。
**注意:**如果您在完成上述步骤后仍然遇到问题,请将您的实例类型更改为基于 x86_64 架构构建的实例。或者,安装更新版本的 s3fs-fuse 软件包。