通过Docker File创建Hadoop镜像
Docker File搭建Hadoop集群
节点分配 hadoop101 hadoop102 hadoop103 HDFS DataNode NameNode DataNode Datanode SecondaryNamenode YARN NodeManager NodeManager ResourceManager NodeManager
1、安装Docker
下载
yum -y install docker-ce
启动docker服务
sudo service docker start
2、使用docker构建虚拟桥接网络
使用docker创建名为“hadoop”的虚拟网络
sudo docker network create --driver=bridge hadoop
使用下列代码查询是否创建成功,NAME项会有上面的“hadoop”字样
sudo docker network ls
3、拉取Ubuntu镜像
查找Ubuntu容器
sudo docker search ubuntu
使用docker pull指定需拉取的镜像版本(名称)
sudo docker pull ubuntu:16.04
可以使用docker images指令查询本地镜像
4、编写Docker FIle
在/home/ken/目录下创建文件夹
mkdir /home/ken/hadoopV1
进入此文件夹
mkdir /home/ken/hadoopV1
创建三个文件夹,分别是"config"、"moudle"、"software"
config用作存储配置好的hadoop配置文件,例如:core-site.xml
software用作存储本地的软件.gz包
moudle存储software解压出来的文件夹
创建文件"Dockerfile"
touch Dockerfile
使用编辑器将进入文件“Dockerfile”
vim Dockerfile
输入以下内容保存最基础的节点配置
FROM ubuntu:16.04
WORKDIR /root
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main \
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main \
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main \
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main \
deb http://mirrors.aliyun.com/ubuntu/ xenial universe \
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe \
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe \
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe \
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main \
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main \
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe \
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe" > /etc/apt/sources.list
RUN apt-get update
RUN mkdir /opt/moudle
COPY ./moudle* /opt/moudle
COPY ./config /tmp/
RUN apt -y install openssh-server && \
apt -y install openssh-client && \
apt -y install vim && \
apt -y install net-tools
RUN ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
RUN cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
RUN service ssh start
ENV JAVA_HOME=/opt/moudle/jdk1.8.0_291
ENV HADOOP_HOME=/opt/moudle/hadoop-2.6.0
ENV PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
RUN mv /tmp/hadoop-env.sh $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
mv /tmp/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml && \
mv /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml && \
mv /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && \
mv /tmp/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml && \
mv /tmp/slaves $HADOOP_HOME/etc/hadoop/slaves
RUN chmod -R +x $HADOOP_HOME
以上在Dockerfile文件中的操作有配置公私钥、环境变量、将本地写好的文件上传到节点中(在搭建之前要确定好各节点承担的服务并编写好配置文件)
5、启动容器
使用docker run指令启动容器
sudo docker run -it ubuntu:16.04 /bin/bash
指定/bin/bash是为了保留进程运行,不然退出后容器会自动关闭
启动进程后切记在Master节点初始化HDFS
./hadoop namenode -format

浙公网安备 33010602011771号