局域网搭建hadoop平台——基于基础镜像通过Dockerfile创建Hadoop镜像
原创
©著作权归作者所有:来自51CTO博客作者WEL测试的原创作品,请联系作者获取转载授权,否则将追究法律责任
创建一个base.repo文件
在window机器上创建一个文件base.repo,文件包含内容如下:
[base]
name=RedHat
baseurl=http://172.17.0.2/RedHat
gpgcheck=1
gpgkey=http://172.17.0.2/RedHat/RPM-GPG-KEY-redhat-release
[updates]
name=RedHat
baseurl=http://172.17.0.2/RedHat
gpgcheck=1
gpgkey=http://172.17.0.2/RedHat/RPM-GPG-KEY-redhat-release
[extras]
name=RedHat
baseurl=http://172.17.0.2/RedHat
gpgcheck=1
gpgkey=http://172.17.0.2/RedHat/RPM-GPG-KEY-redhat-release
编写Dockerfile文件
在window编写Dockerfile文件,文件包含如下内容:
FROM redhat:7.3
MAINTAINER henni_719
COPY jdk1.8.0_171 /usr/local/jdk1.8.0_171
RUN mkdir /data && mkdir /data/hdfs &&mkdir /data/hdfs/name && mkdir /data/hdfs/data && mkdir /data/hdfs/tmp
COPY hadoop-3.1.1 /data/hadoop-3.1.1
COPY base.repo /etc/yum.repos.d/base.repo
ENV JAVA_HOME=/usr/local/jdk1.8.0_171
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
ENV HADOOP_HOME=/data/hadoop-3.1.1
ENV HADOOP_COMMON_HOME=$HADOOP_HOME
ENV HADOOP_HDFS_HOME=$HADOOP_HOME
ENV HADOOP_MAPRED_HOME=$HADOOP_HOME
ENV HADOOP_YARN_HOME=$HADOOP_HOME
ENV HADOOP_INSTALL=$HADOOP_HOME
ENV HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
ENV HADOOP_CONF_DIR=$HADOOP_HOME
ENV HADOOP_PREFIX=$HADOOP_HOME
ENV HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
ENV JAVA_LIBIRARY_PATH==$HADOOP_HOME/lib/native:$JAVA_LIBIRARY_PATH
ENV HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
ENV HDFS_DATANODE_USER=root
ENV HDFS_DATANODE_SECURE_USER=root
ENV HDFS_SECONDARYNAMENODE_USER=root
ENV HDFS_NAMENODE_USER=root
ENV YARN_RESOURCEMANAGER_USER=root
ENV YARN_RESOURCEMANAGER_USER=root
ENV HDFS_SECURE_DN_USER=root
ENV YARN_NODEMANAGER_USER=root
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
EXPOSE 9000 9001 18040 18030 18088 18025 18141 50070
RUN yum -y install openssh*
RUN chmod -R 777 /usr/local/jdk1.8.0_171 && chmod -R 777 /data/hadoop-3.1.1 && source /etc/profile
把Dockerfile拖进宿主机的/root中
在/root目录下包含如下内容:base.repo、Dockerfile、jdk1.8.0_171、hadoop-3.1.1。然后在宿主机上执行命令:
docker build -t hadoop:3.1.1 .
创建hadoop:3.1.1镜像,查看镜像构建过程的输出信息,出现安装openssh-server中红色警告可以忽略,因为ssh服务已经安装成功。
验证镜像能成功使用
在宿主机使用镜像hadoop:3.1.1创建容器:
docker run -id name test hadoop:3.1.1 bash
进入容器:
docker exec -it test bash
执行命令:
在显示Hadoop 3.1.1,说明镜像可以正常使用。
至此hadoop的镜像创建成功。该镜像用于后面大数据hadoop平台创建。关注微信公众号:WEL测试,看到相关信息我会尽快回复。