这篇文章记录下针对不同的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)"