
這篇文章記錄下針對不同的hadoop版本進行服務部署的過程,希望可以幫到你們
- 安裝docker hadoop2.7.0
- 一鍵部署docker hadoop3.0.0集群(一個master 三個slave)
- 安裝docker hadoop 3.2.0
a、docker啟動
b、docker compose方式啟動
安裝hadoop 2.7.0版本
安裝命令
docker run --name hdfs2.7.3 -d -p 9000:9000 -p 50070:50070 georocket/hadoop-docker:2.7.3
50070是webui端口
9000是hdfs服務端口
查看啟動結果
docker logs -f 529923fd985e65c6aa1dab32b51acfc3bb4de94042b9079b8d1e62e760766821從日志中可以看出 啟動方式-啟動用戶-啟動服務hadoop-root-namenode
hadoop-root-datanode
hadoop-root-secondarynamenode
yarn--resourcemanager
yarn-root-nodemanager
mapred--historyserver

hadoop相關端口
docker ps|grep hadoop529923fd985e georocket/hadoop-docker:2.7.3 "/etc/bootstrap.sh -d" 36 minutes ago Up 36 minutes 2122/tcp, 8020/tcp, 8030-8033/tcp, 8040/tcp, 8042/tcp, 8088/tcp, 10020/tcp, 19888/tcp, 49707/tcp, 50010/tcp, 0.0.0.0:9000->9000/tcp, 50020/tcp, 50075/tcp, 50090/tcp, 0.0.0.0:50070->50070/tcp hdfs2.7.3

進入docker中 運行hadoop mapreduce
docker exec -it 529923fd985e65c6aa1dab32b51acfc3bb4de94042b9079b8d1e62e760766821 sh進入hadoop目錄cd $HADOOP_PREFIX
執行mapreduce程序
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'計算結果保存在了 hdfs://529923fd985e:9000/user/root/output

從日志中可以看到這些關鍵信息
客戶端連接ResourceManager資源管理器 對應端口是8032
client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032提交一個mapreduce任務到 8088端口
mapreduce.Job: The url to track the job: http://529923fd985e:8088/proxy/application_1603590135211_0004/
查看計算結果
bin/hdfs dfs -cat output/*

通過頁面查看
http://127.0.0.1:50070/

安裝hadoop 3.0.0
安裝hadoop 3.1.1集群
一鍵啟動腳本
https://gitee.com/pingfanrenbiji/docker-hadoop

./start-hadoopContainer.sh 啟動一個master節點 3個slave節點

進入master容器
docker exec -it master sh
格式化hdfs
hadoop namenode -format

啟動hadoop
cd /usr/local/hadoop-3.1.1/sbin
./start-all.sh

查看是否啟動成功
jps

進入其他slave中

訪問web頁面
http://127.0.0.1:9870/

安裝hadoop 3.2.0版本
啟動腳本
https://gitee.com/pingfanrenbiji/hadoop-docker

啟動docker服務
# 啟動hadoop 3.2.0
docker run --rm --name hadoop -p 9870:9870 -p 9864:9864 -d crs4/hadoop:3.2.0# 進入docker
docker exec -it hadoop bash -l# 創建一個目錄
hdfs dfs -mkdir -p "/user/$(whoami)"# 上傳文件
hdfs dfs -put entrypoint.sh# 打印hadoop版本
export V=$(hadoop version | head -n 1 | awk '{print $2}')# 提交hadoop任務
hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-${V}.jar wordcount entrypoint.sh wc_out# 運行hadoop任務
hdfs dfs -get wc_out# 獲取計算結果
head wc_out/part*
通過docker-compose啟動
docker-compose up -d


進入client
docker-compose exec client bashhdfs dfs -mkdir -p "/user/$(whoami)"