0x00 教程內(nèi)容
- 環(huán)境及資源準(zhǔn)備
- 生成容器
- 檢驗Hadoop與Spark
0x01 環(huán)境及資源準(zhǔn)備
1. 安裝Docker
請參考:D001.5 Docker入門(超級詳細基礎(chǔ)篇)的“0x01 Docker的安裝”小節(jié)
2. 準(zhǔn)備資源
a. 根據(jù)文末總結(jié)的文件目錄結(jié)構(gòu)迎捺,拷貝文章的資源,資源請參考:D001.6 Docker搭建Hadoop集群
b. 模仿Hadoop自己寫一份,或者后期關(guān)注代碼庫:
邵奈一的學(xué)習(xí)庫
c. Dockerfile參考文件
FROM ubuntu
MAINTAINER shaonaiyi shaonaiyi@163.com
ENV BUILD_ON 2017-11-16
RUN apt-get update -qqy
RUN apt-get -qqy install vim wget net-tools iputils-ping openssh-server
#添加JDK
ADD ./jdk-8u161-linux-x64.tar.gz /usr/local/
#添加hadoop
ADD ./hadoop-2.7.5.tar.gz /usr/local/
#添加scala
ADD ./scala-2.11.8.tgz /usr/local/
#添加spark
ADD ./spark-2.2.0-bin-hadoop2.7.tgz /usr/local/
ENV CHECKPOINT 2019-01-14
#增加JAVA_HOME環(huán)境變量
ENV JAVA_HOME /usr/local/jdk1.8.0_161
#hadoop環(huán)境變量
ENV HADOOP_HOME /usr/local/hadoop-2.7.5
#scala環(huán)境變量
ENV SCALA_HOME /usr/local/scala-2.11.8
#spark環(huán)境變量
ENV SPARK_HOME /usr/local/spark-2.2.0-bin-hadoop2.7
#將環(huán)境變量添加到系統(tǒng)變量中
ENV PATH $SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$PATH
RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' && \
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys && \
chmod 600 ~/.ssh/authorized_keys
#復(fù)制配置到/tmp目錄
COPY config /tmp
#將配置移動到正確的位置
RUN mv /tmp/ssh_config ~/.ssh/config && \
mv /tmp/profile /etc/profile && \
mv /tmp/masters $SPARK_HOME/conf/masters && \
cp /tmp/slaves $SPARK_HOME/conf/ && \
mv /tmp/spark-defaults.conf $SPARK_HOME/conf/spark-defaults.conf && \
mv /tmp/spark-env.sh $SPARK_HOME/conf/spark-env.sh && \
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/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml && \
mv /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && \
mv /tmp/master $HADOOP_HOME/etc/hadoop/master && \
mv /tmp/slaves $HADOOP_HOME/etc/hadoop/slaves && \
mv /tmp/start-hadoop.sh ~/start-hadoop.sh && \
mkdir -p /usr/local/hadoop2.7/dfs/data && \
mkdir -p /usr/local/hadoop2.7/dfs/name
RUN echo $JAVA_HOME
#設(shè)置工作目錄
WORKDIR /root
#啟動sshd服務(wù)
RUN /etc/init.d/ssh start
#修改start-hadoop.sh權(quán)限為700
RUN chmod 700 start-hadoop.sh
#修改root密碼
RUN echo "root:shaonaiyi" | chpasswd
CMD ["/bin/bash"]
0x02 生成容器
1. 生成樣本鏡像
a. 切換成root用戶(密碼:shaonaiyi)
su root
b. 拷貝資源文件spark_sny_all進到docker_bigdata目錄(如有則不用創(chuàng)建)
mkdir docker_bigdata
c. 生成樣本鏡像:shaonaiyi/spark
cd docker_bigdata/spark_sny_all
docker build -t shaonaiyi/spark .
此過程時間根據(jù)自己網(wǎng)絡(luò)情況與自己裝docker時的配置有關(guān)(10分鐘左右)
出現(xiàn)下圖表示成功:
2. 創(chuàng)建bigdata-spark網(wǎng)絡(luò)
a. 修改腳本權(quán)限
chmod 700 build_network.sh
b. 創(chuàng)建網(wǎng)絡(luò)
./build_network.sh
修改及創(chuàng)建后如圖:
3. 啟動容器
a. 修改腳本權(quán)限
cd config
chmod 700 start_containers.sh
b. 啟動容器(映射的端口多的為master)
./start_containers.sh
0x03 檢驗Hadoop與Spark
1. 啟動Hadoop與Spark
a. 查看啟動的容器(顯示跟剛剛一樣)
docker ps
b. 進入容器hadoop-master(可用自己的容器ID)
docker attach hadoop-master
c. 修改腳本執(zhí)行權(quán)限
ll
d. 啟動Hadoop集群
./start-hadoop.sh
無報錯旦部,且有進程(如報錯可以重新生成容器試試):
2. Web UI界面查看
a. 切換終端赔退,查看端口映射(可看到51070端口映射到docker的50070端口)
docker port hadoop-master
b. 在我們的windows系統(tǒng)執(zhí)行(虛擬機的ip:port)
ps:自行修改ip
2. 停止并刪除容器指令
a. 修改腳本權(quán)限
cd /home/shaonaiyi/docker_bigdata/spark_sny_all/config/
chmod 700 stop_containers.sh
b. 刪除容器
./stop_containers.sh
c. 查看執(zhí)行的容器(沒有則表示刪除成功)
docker ps
0xFF 總結(jié)
- 如需要獲取資源到腥,可加微信:shaonaiyi888獲取最新消息
- 本文為搭建Spark與Hadoop集群的實踐篇邢滑,與上一篇有異曲同工之處:
D001.7 Docker搭建Hadoop集群(實踐篇) - 本次教程使用了ubuntu鏡像蹂午,可在docker hub官網(wǎng)搜索指定的版本:https://hub.docker.com/
- 后期會出教程:
a. 在集群內(nèi)部傳統(tǒng)模式安裝HBase
b. 使用Dockerfile方式安裝HBase
<font size="1">
ps:
本系列課程開發(fā)使用兩臺虛擬機:<br />
測試機ip為:192.168.128.128<br />
非測試機為:192.168.128.129<br />
有些時候使用測試機盈魁,有時候使用非測試機<br />
讀者請自行修改翔怎!<br />
</font><br />
作者簡介:邵奈一
大學(xué)大數(shù)據(jù)講師、大學(xué)市場洞察者备埃、專欄編輯
公眾號姓惑、微博褐奴、CSDN:邵奈一
本系列課均為本人:邵奈一 原創(chuàng),如轉(zhuǎn)載請標(biāo)明出處