我有一个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做同样的操作吗?
1条答案
按热度按时间olhwl3o21#
chown
它本身用于本地文件你想要什么
hadoop fs chown
对于hdfs文件。但是,您确实应该在容器构建过程之外这样做,因为
localhost:8020
是容器本身,并且不是可访问的hdfs位置