我有一个dockerfile可以运行我想要在容器中进行的所有操作。在这种情况下,我想运行一个spark代码,并在dockerfile中授予spark权限以在特定目录中写入。
现在,我还希望允许spark在hdfs上运行。为此,我像在其他情况下一样使用“chown -R”,但对于HDFS则不起作用。
FROM maven:3.6.3-jdk-8-slim
COPY ./ /test
WORKDIR /teste
RUN mvn -e install
RUN apt-get update && \
...
chown -R spark:spark /usr/spark* && \
chown -R spark:spark hdfs://localhost:8020/user/admin*
USER spark
WORKDIR /opt/spark
这样,我可以在目录“/ usr / spark”中写入文件,但不能在hdfs中。有人可以告诉我我在做什么错吗?我不能对HDFS做同样的事情吗?
最佳答案
chown
本身用于本地文件
您需要hadoop fs chown
用于HDFS文件。
但是,您确实应该在容器构建过程之外执行此操作,因为localhost:8020
是容器本身,并且不是可访问的HDFS位置
关于java - Dockerfile授予hdfs权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63531426/