1.搭建过程
https://dblab.xmu.edu.cn/blog/1233/
https://www.cnblogs.com/rmxd/p/12051866.html#_label4
按照这两篇文章即可,总结来说 pull ubuntu,进入系统,配置java、hadoop,保存镜像。然后根据这个镜像启动三个容器master,slave1,slave2,在master上配置相关信息。
2.注意的踩坑点(与两篇文章有出入):
mapred-site.xml 如下配置
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
</configuration>
start-dfs.sh stop-dfs.sh 首部加入如下属性
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs #hadoop3.0后使用该名称
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh stop-yarn.sh首部加入如下属性
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
容器重启后,配置的hosts文件中的修改会丢失
原因见链接: https://blog.csdn.net/Lekaor/article/details/127442047,需要重新配置一遍或者在网上找方法去固定ip。
运行程序
把程序在本地打成jar包,传到容器内(ubuntu)(docker cp 命令)。把数据上传到容器内,再上传到 hdfs 上。
hadoop jar
执行程序
如何在浏览器访问
使用 docker 进行端口映射 8808 和 50070,即可在启动集群后在本地浏览器访问