docker中搭建Hadoop集羣

前提:jdk和ssh服務都已經安裝完成,如未完成,請參考博主所寫博客
1、創建鏡像容器 -P將容器的所有端口映射到主機端口
docker run -itd -v /c/Users:/root/build -P -h master --name master --net mynetwork --ip 172.18.0.2 hadoop:master /bin/bash
docker run -itd -v /c/Users:/root/build -P -h slave1 --name slave1 --net mynetwork --ip 172.18.0.3 hadoop:slave1 /bin/bash
docker run -itd -v /c/Users:/root/build -P -h slave2 --name slave2 --net mynetwork --ip 172.18.0.4 hadoop:slave2 /bin/bash
2、運行容器
docker attach master
docker attach slave1
docker attach slave2
3、安裝到/usr/local/目錄下
cp jdk-8u181-linux-x64.tar.gz /usr/local/
4、解壓
tar -zxvf jdk-8u181-linux-x64.tar.gz
5、重命名
mv hadoop-2.7.6 hadoop276
6、刪除安裝包
rm -rf hadoop-2.7.6.tar.gz
7、修改/etc/hosts文件
172.18.0.2 master
172.18.0.3 slave1
172.18.0.4 slave2
8、修改配置文件(配置時註釋部分一定要刪除)
配置vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk8/
配置vim yarn-env.sh
export JAVA_HOME=/usr/java/jdk8/
配置vim core-site.xml

修改配置文件
配置vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk8/
配置vim yarn-env.sh
export JAVA_HOME=/usr/java/jdk8/
配置vim core-site.xml
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000/</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoopdata</value>
        </property>
配置vim hdfs-site.xml
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>		
配置vim yarn-site.xml		
        <!--nomenodeManager獲取數據的方式是shuffle-->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <!--ResourceManager 對客戶端暴露的地址。客戶端通過該地址向RM提交應用程序,殺死應用程序等-->
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>master:18040</value>
        </property>
        <!--ResourceManager 對ApplicationMaster暴露的訪問地址。ApplicationMaster通過該地址向RM申請資源、釋放資源等。-->
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>master:18030</value>
        </property>
        <!--ResourceManager 對NodeManager暴露的地址.。NodeManager通過該地址向RM彙報心跳,領取任務等。-->
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>master:18025</value>
        </property>
        <!--ResourceManager 對管理員暴露的訪問地址。管理員通過該地址向RM發送管理命令等。-->
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>master:18141</value>
        </property>
        <!--ResourceManager對外web ui地址。用戶可通過該地址在瀏覽器中查看集羣各類信息。-->
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>master:18088</value>				
配置mapred-site.xml
複製etc/hadoop/mapred-site.xml.template, 另存爲 mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
		<property>
			<name>mapreduce.framework.name</name>
			<value>yarn</value>
		</property>
修改配置slave文件
slave1
slave2

9、創建目錄存放數據文件
cd /home/
mkdir /home/hadoopdata
10、配置hadoop環境變量
vim ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop276
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
11、加載變量
source ~/.bashrc
啓動hadoop集羣進行測試
12、啓動hadoop集羣進行測試
首先測試試試服務是否開啓,可通過/usr/sbin/sshd -D &命令開啓
a、格式化文件系統: 在master 節點執行
hdfs namenode –format
b、啓動hadoop(停止:sbin/stop-all.sh)
cd /usr/local/hadoop276
sbin/start-all.sh
c、驗證:
在三個節點中輸入 jps
d、保存爲鏡像
docker commit -a “axh” -m “centos7 with jdk ssh hadoop installed” master hadoop:master
docker commit -a “axh” -m “centos7 with jdk ssh hadoop installed” slave1 hadoop:slave1
docker commit -a “axh” -m “centos7 with jdk ssh hadoop installed” slave2 hadoop:slave2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章