Dockerfile-hadoop283-jdk

281 阅读1分钟

造个轮子 - Hadoop镜像

说明

  1. 镜像基于xiaows/debian8-jdk8-ssh:2.0
  2. hadoop版本2.8.3

安装hadoop

  1. 下载hadoop到本地, 解压

  2. 修改配置文件(图中选中部分)

    hadoop-conf

  3. 编写dockerfile

#Dockerfile-hadoop283-jdk
FROM xiaows/debian8-jdk8-ssh:2.0
WORKDIR /root
#install hadoop
COPY hadoop/ /usr/local/hadoop
#copy hadoop-config
# COPY hadoop-conf/ $HADOOP_HOME/etc/hadoop/
ENV HADOOP_HOME=/usr/local/hadoop
ENV PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
RUN mkdir -p /data/hdfs/namenode;\
    mkdir -p /data/hdfs/datanode;\
    # mkdir -p $HADOOP_HOME/logs;\
    # ln -s $HADOOP_HOME/etc/hadoop /root/hadoop-conf;\
    rm -rfv $HADOOP_HOME/share/doc/;\
    rm -rfv $HADOOP_HOME/bin/*.cmd;\
    rm -rfv $HADOOP_HOME/sbin/*.cmd;\
    mv $HADOOP_HOME/etc/hadoop/start-hadoop.sh /root/;\
    mv $HADOOP_HOME/etc/hadoop/run-wordcount.sh /root/;\
    chmod +x /root/*.sh
RUN hdfs namenode -format
COPY Dockerfile-hadoop283-jdk /root/

构建镜像

docker build -f Dockerfile-hadoop283-jdk -t xiaows/hadoop283-jdk:2.0 .

接下来就可以用之前那个启动集群镜像脚本来启动容器和集群啦~

./start-cluster.sh xiaows/hadoop283-jdk:2.0 hadoop start-all.sh

hadoop-cluster