名称节点 HDFS Docker

Namenode HDFS Docker

我想 运行 start-all.sh 文件,因为我已经在 HDFS 中格式化了 Namenode。我在 Docker.

中使用它

要访问它,我使用:

docker exec -u root -it jupyter-stack /bin/bash

start-all.sh 文件位于路径:

/usr/local/spark-2.4.4-bin-hadoop2.7/sbin/

当我访问该路径并 运行 它时,我收到以下错误:

bash: /usr/local/bin/start-all.sh: Permission denied

如何修复它并能够运行所有服务?

你的错误指的是与脚本不同的路径,所以你似乎应该在命令中给出绝对路径。

但是,运行 同一容器中的多个服务在 Docker 中是不好的做法。

您应该为名称节点(和数据节点)使用不同的容器,例如用户 bde2020 分发的容器 - https://github.com/big-data-europe/docker-hadoop

或者您可以使用替代文件系统(例如 MinIO)或简单地让 Spark 从其本地容器文件系统读取 Docker 图像