首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在hadoop-3.1.3中运行映射器和减速器程序

在hadoop-3.1.3中运行映射器和减速器程序
EN

Stack Overflow用户
提问于 2020-02-17 16:25:53
回答 1查看 80关注 0票数 0

我正在尝试运行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,安装是成功的。我看到以下情况

代码语言:javascript
复制
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

现在,当我试图运行一个图像

代码语言:javascript
复制
 docker run -it --user debian 1d1a162a72a6

我搞错了

代码语言:javascript
复制
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的身份登录,现在我有了程序映射器和还原器,我想在它们中运行。那时候我做了

代码语言:javascript
复制
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源文件的构建脚本中,有以下几行

代码语言:javascript
复制
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时我看到了

代码语言:javascript
复制
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:

我不知道创建了多少个容器,并且对容器中的环境进行了更改。重新启动后,我找不到对这些容器所做的任何更改。我的容器怎么能在重新启动时存活下来?

EN

回答 1

Stack Overflow用户

发布于 2020-02-18 11:11:35

我无法理解如何使用现有映像来运行映射程序和还原程序代码。

运行docker exec进入容器

运行yarn jar命令..。

与其他提交工作的方式没有什么不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60266630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档