(1)在#后输入cd /home/命令,进入home目录下,在#后输入vi Dockerfile命令,创建并编辑一个Dockerfile文件,示例代码如下:

[root@xxx home]# vi Dockerfile

按i(小写)键,进入编辑模式,将以下代码输入至Dockerfile文件当中。示例代码如下:

FROM centos

MAINTAINER zing

ADD jdk-7u79-linux-x64.tar.gz /usr/local/

ENV JAVA_HOME /usr/local/jdk1.7.0_79

ENV PATH $JAVA_HOME/bin:$PATH

ADD hadoop-2.6.4.tar.gz /usr/local

ADD hadoop-env.sh /usr/local/hadoop-2.6.4/etc/hadoop/hadoop-env.sh

ADD hdfs-site.xml /usr/local/hadoop-2.6.4/etc/hadoop/hdfs-site.xml

ADD core-site.xml /usr/local/hadoop-2.6.4/etc/hadoop/core-site.xml

ADD yarn-site.xml /usr/local/hadoop-2.6.4/etc/hadoop/yarn-site.xml

ADD mapred-site.xml /usr/local/hadoop-2.6.4/etc/hadoop/mapred-site.xml

ADD slaves /usr/local/hadoop-2.6.4/etc/hadoop/slaves

ENV HADOOP_HOME /usr/local/hadoop-2.6.4

ENV PATH $HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

RUN yum install -y openssh-server openssh-clients sudo which

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

RUN echo "root:000000" | chpasswd

RUN echo "root   ALL=(ALL)       ALL" >> /etc/sudoers

RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

RUN mkdir /var/run/sshd

EXPOSE 22 50070 8088

CMD ["/usr/sbin/sshd", "-D"]

按Esc键进入末行模式,输入:wq命令,保存内容并退出。示例代码如图1所示:

在这里插入图片描述

(2)在#后输入docker build -t zing/hadoop .命令,构建镜像,示例代码如图2所示:
在这里插入图片描述

(3)待构建完成后,在#后输入docker images命令,查看镜像列表。示例代码如图3所示:

在这里插入图片描述

(4)通过在#后输入docker network create --subnet 192.168.5.0/24 --gateway 192.168.5.1 hadoop_net命令,创建Hadoop集群的网络。示例代码如图4所示:
在这里插入图片描述
(5)在#后输入docker run -idt -P --name master -h master --net hadoop_net zing/hadoop命令,使用Hadoop镜像创建master容器,然后在#后输入docker run -idt -P --name slave -h slave --net hadoop_net zing/hadoop命令,使用Hadoop镜像创建slave容器,示例代码如图5所示:

在这里插入图片描述

(6)在#后docker exec -it master ping -c 4 slave命令,检查Hadoop集群之间是否能通信,示例代码如图6所示:

在这里插入图片描述

(7)在#后输入docker exec -it master ssh-keygen命令,为master容器配置SSH无密钥登录,在(/root/.ssh/id_rsa):后按Enter键,在(empty for no passphrase):后按Enter键,在Enter same passphrase again:后按Enter键,示例代码如图7所示:

在这里插入图片描述

(8)在#后输入docker exec -it slave ssh-keygen命令,为master容器配置SSH无密钥登录,在(/root/.ssh/id_rsa):后按Enter键,在(empty for no passphrase):后按Enter键,在Enter same passphrase again:后按Enter键,示例代码如图8所示:
在这里插入图片描述
(9)在#后输入docker exec -it master ssh-copy-id slave命令,将master容器中的秘钥复制到slave中,在(yes/no)?后输入yes,在root@slave’s password:后输入密码000000,按Enter键,示例代码如图9所示:
在这里插入图片描述

(10)在#后输入docker exec -it slave ssh-copy-id master命令,将slave容器中的秘钥复制到master中,在(yes/no)?后输入yes,在root@master’s password:后输入密码000000,按Enter键,示例代码如图10所示:

在这里插入图片描述

(11)在#后输入docker exec -it master ssh-copy-id master命令,将master容器中的秘钥复制到master中,在(yes/no)?后输入yes,在root@master’s password:后输入密码000000,按Enter键,示例代码如图11所示:

在这里插入图片描述

(12)在#后输入docker exec -it slave ssh-copy-id slave命令,将slave容器中的秘钥复制到slave中,在(yes/no)?后输入yes,在root@slave’s password:后输入密码000000,按Enter键,示例代码如图12所示:

在这里插入图片描述
(13)在#后输入docker exec -it master hadoop namenode –format命令,初始化Hadoop集群,示例代码如图13所示:

初始化完成示例代码如图14所示:
在这里插入图片描述
(14)在#后输入docker exec -it master start-all.sh命令,启动Hadoop集群,在(yes/no)?后输入yes,并按Enter键。示例代码如图15所示:

在这里插入图片描述

(15)在#后输入docker port master命令,查看Hadoop集群映射端口,示例代码如图16所示:

在这里插入图片描述

(16)在#后输入curl -L http://127.0.0.1:32772命令(端口号为8088映射的端口),通过curl获取Hadoop集群网页代码,示例代码如图17所示:

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐