1+ FROM centos:latest
2+ ARG SERVICE_VERSION=${SERVICE_VERSION:-3.3.1}
3+ ARG HADOOP_VERSION=${SERVICE_VERSION}
4+
5+ ARG JAVA_VERSION=8
6+ ARG JAVA_RELEASE=JDK
7+
8+ RUN set -eux && \
9+ pkg="java-1.$JAVA_VERSION.0-openjdk" && \
10+ if [ "$JAVA_RELEASE" = "JDK" ]; then \
11+ pkg="$pkg-devel" ; \
12+ else \
13+ pkg="$pkg-headless" ; \
14+ fi; \
15+ yum install -y "$pkg" && \
16+ yum clean all && \
17+ rm -rf /var/cache/yum
18+
19+ COPY profile.d/java.sh /etc/profile.d/
20+
21+ ENV JAVA_HOME=/usr
22+
23+ ARG TAR=hadoop-$HADOOP_VERSION.tar.gz
24+
25+ ENV PATH $PATH:/hadoop/bin
26+
27+ LABEL Description="Hadoop Dev" \
28+ "Hadoop Version" ="$HADOOP_VERSION"
29+
30+ WORKDIR /
31+
32+ RUN set -eux && \
33+ yum install -y openssh-server openssh-clients tar which
34+
35+ ENV JOLOKIA_VERSION=1.6.0 JOLOKIA_HOST=0.0.0.0 JOLOKIA_PORT=7778
36+ ENV HADOOP_LATEST_VERSION=${SERVICE_VERSION}
37+
38+ RUN set -eux && \
39+ yum install -y wget hostname && \
40+
41+ wget "http://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-jvm/${JOLOKIA_VERSION}/jolokia-jvm-${JOLOKIA_VERSION}-agent.jar" -O "jolokia-jvm-${JOLOKIA_VERSION}-agent.jar" && \
42+ wget -t 10 --max-redirect 1 --retry-connrefused -O "$TAR" "http://www.apache.org/dyn/closer.lua?filename=hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-$HADOOP_VERSION.tar.gz&action=download" || \
43+ wget -t 10 --max-redirect 1 --retry-connrefused -O "$TAR" "http://archive.apache.org/dist/hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-$HADOOP_VERSION.tar.gz" && \
44+ tar zxf "$TAR" && \
45+
46+ test -d "hadoop-$HADOOP_VERSION" && \
47+ ln -sv "hadoop-$HADOOP_VERSION" hadoop && \
48+ mkdir /etc/hadoop && \
49+ ln -s /hadoop/etc/hadoop /etc/hadoop/conf && \
50+ rm -fv "$TAR" && \
51+ { rm -rf hadoop/share/doc; : ; } && \
52+ yum autoremove -y && \
53+ # gets autoremoved, ensure it's added back as Hadoop scripts need it
54+ yum install -y hostname && \
55+ yum clean all && \
56+ rm -rf /var/cache/yum
57+
58+ ENV JMX_REMOTE=yes JOLOKIA_ENABLED=yes
59+
60+ COPY entrypoint.sh /
61+ COPY conf/core-site.xml /hadoop/etc/hadoop/
62+ COPY conf/hdfs-site.xml /hadoop/etc/hadoop/
63+ COPY conf/yarn-site.xml /hadoop/etc/hadoop/
64+ COPY conf/mapred-site.xml /hadoop/etc/hadoop/
65+ COPY profile.d/hadoop.sh /etc/profile.d/
66+ COPY ssh/config /root/.ssh/
67+
68+
69+ RUN set -eux && \
70+ /hadoop/bin/hdfs namenode -format && \
71+ groupadd hadoop && \
72+ useradd -g hadoop hdfs && \
73+ useradd -g hadoop yarn && \
74+ mkdir -p /dfs/name && \
75+ mkdir -p /dfs/data && \
76+ mkdir -p /hadoop/logs && \
77+ chown -R hdfs:hadoop /dfs/name && \
78+ chown -R hdfs:hadoop /dfs/data && \
79+ chgrp -R hadoop /hadoop/logs && \
80+ chmod -R 0770 /hadoop/logs && \
81+ mkdir -p /root/.ssh \
82+ /home/hdfs/.ssh \
83+ /home/yarn/.ssh && \
84+ chown hdfs /home/hdfs/.ssh && \
85+ chown yarn /home/yarn/.ssh && \
86+ chmod 0700 /root/.ssh \
87+ /home/hdfs/.ssh \
88+ /home/yarn/.ssh
89+
90+ ENV HDFS_NAMENODE_USER=hdfs
91+ ENV HDFS_SECONDARYNAMENODE_USER=hdfs
92+ ENV HDFS_DATANODE_USER=hdfs
93+ ENV YARN_RESOURCEMANAGER_USER=yarn
94+ ENV YARN_NODEMANAGER_USER=yarn
95+
96+
97+
98+ RUN rm -rf /run/nologin
99+ RUN chmod -R 600 /etc/crypto-policies/
100+ CMD ["bash" ,"/entrypoint.sh" ]
0 commit comments