1. 程式人生 > >區域網搭建hadoop平臺——基於基礎映象通過Dockerfile建立Hadoop映象

區域網搭建hadoop平臺——基於基礎映象通過Dockerfile建立Hadoop映象

建立一個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 version

在顯示Hadoop 3.1.1,說明映象可以正常使用。

至此hadoop的映象建立成功。該映象用於後面大資料hadoop平臺建立。如果有問題可以加入QQ群:320542475,看到相關資訊我會盡快回復。