我正在尝试运行hadoop容器。我做的是从https://hadoop.apache.org/releases.html下载hadoop,我下载了3.1.3文件https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/hadoop-3.1.3-src.tar.gz,安装是成功的。我看到以下情况
debian@osboxes:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
python latest eeadc22d21a9 2 weeks ago 933MB
hadoop-build-1001 latest 1d1a162a72a6 3 months ago 2.02GB
hadoop-build latest 5c1480006f78 3 months ago 1.96GB
ubuntu xenial 5f2bf26e3524 3 months ago 123MB现在,当我试图运行一个图像
docker run -it --user debian 1d1a162a72a6我搞错了
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "chdir to cwd (\"/root\") set in config.json failed: permission denied": unknown.
debian@osboxes:~$ 我无法理解为什么会出现这些错误,以及如何消除上述错误。我可以以root用户的身份登录到容器,然后在里面做了一个su debian,所以我可以以debian的身份登录,现在我有了程序映射器和还原器,我想在它们中运行。那时候我做了
RUN apt-get update
RUN apt-get install default-jdk wget -y
RUN apt-get install python3 -y
RUN wget
http://mirrors.estointernet.in/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz
RUN tar -xzvf hadoop-2.10.0.tar.gz
ENV JAVA_HOME $(readlink -f /usr/bin/java | sed "s:bin/java::")
RUN mv hadoop-2.10.0 /usr/local/hadoop
ENV PATH /usr/local/hadoop/bin:$PATH
RUN rm -rf hadoop-2*现在,我在hadoop 3中安装了hadoop-2.10.0,然后执行了我的程序。我不得不在容器中编辑debian的.bashrc。我想知道如何在hadoop-3.1.3中运行映射器和还原器程序,这是我从源代码构建和编译的,还是在这里做错了什么?
是否有更好的方法来使用hadoop-3.1.3环境,它花了我几个小时来编译和安装。
更新1
在我下载的hadoop源文件的构建脚本中,有以下几行
docker build -t "hadoop-build-${USER_ID}" - <<UserSpecificDocker
FROM hadoop-build
RUN groupadd --non-unique -g ${GROUP_ID} ${USER_NAME}
RUN useradd -g ${GROUP_ID} -u ${USER_ID} -k /root -m ${USER_NAME}
RUN echo "${USER_NAME} ALL=NOPASSWD: ALL" > "/etc/sudoers.d/hadoop-build-${USER_ID}"
ENV HOME /home/${USER_NAME}
UserSpecificDocker
# By mapping the .m2 directory you can do an mvn install from
# within the container and use the result on your normal
# system. And this also is a significant speedup in subsequent
# builds because the dependencies are downloaded only once.
docker run --rm=true -t -i \
-v "${PWD}:/home/${USER_NAME}/hadoop${V_OPTS:-}" \
-w "/home/${USER_NAME}/hadoop" \
-v "${HOME}/.m2:/home/${USER_NAME}/.m2${V_OPTS:-}" \
-u "${USER_NAME}" \
"hadoop-build-${USER_ID}"
"start-build-env.sh" 所以我想我有hadoop的开发环境。然而,我的问题在于集装箱。当我做docker ps -a时我看到了
19a4eff3b5e5 1d1a162a72a6 "/bin/bash" 3 hours ago Exited (0) 3 hours ago assignment4
30933891f08c eeadc22d21a9 "python3" 3 hours ago Exited (0) 3 hours ago python
ccdab94fd32f 1d1a162a72a6 "/bin/bash" 9 hours ago Exited (0) 5 hours ago confident_wu
ce462ecfc5f2 1d1a162a72a6 "/bin/bash -v /home/…" 9 hours ago Exited (127) 9 hours ago stupefied_grothendieck
6123f134934c 1d1a162a72a6 "/bin/bash" 9 hours ago Exited (1) 9 hours ago stupefied_taussig
0ed23a8112a4 1d1a162a72a6 "/bin/bash" 10 hours ago Exited (0) 10 hours ago vigilant_bartik
c343731b7cde 1d1a162a72a6 "/bin/bash" 11 hours ago Exited (0) 10 hours ago gallant_ardinghelli
2f95d3b4c1b8 1d1a162a72a6 "/bin/bash" 11 hours ago Created nice_hermann
5ebe9f18c744 1d1a162a72a6 "/bin/bash" 27 hours ago Created pensive_easley
c1b43edfafb9 1d1a162a72a6 "/bin/bash" 27 hours ago Exited (1) 3 hours ago adoring_williams
42dea69d1d4e 1d1a162a72a6 "/bin/bash" 27 hours ago Created funny_austin
6f736902e650 1d1a162a72a6 "/bin/bash" 27 hours ago Exited (1) 27 hours ago strange_ride
09306e5ec5d1 1d1a162a72a6 "--name=kaushik" 32 hours ago Created pensive_shtern
699fb2a23e1c 1d1a162a72a6 "--name=kaushik" 32 hours ago Created sharp_feistel
9f7b29ab512e 1d1a162a72a6 "--name=kaushik" 32 hours ago Created elastic_payne2
25bfc74fab3b 1d1a162a72a6 "/bin/bash" 33 hours ago Exited (1) 31 hours ago festive_einstein
e658dd320297 1d1a162a72a6 "/bin/bash" 33 hours ago Up 3 hours objectiv:我不知道创建了多少个容器,并且对容器中的环境进行了更改。重新启动后,我找不到对这些容器所做的任何更改。我的容器怎么能在重新启动时存活下来?
发布于 2020-02-18 11:11:35
我无法理解如何使用现有映像来运行映射程序和还原程序代码。
运行docker exec进入容器
运行yarn jar命令..。
与其他提交工作的方式没有什么不同。
https://stackoverflow.com/questions/60266630
复制相似问题