1. 虚拟机的三台机器分别以hdfs 存储, mapreduce计算,yarn调度三个方面进行集群配置
hadoop 版本3.3.4
官网:Hadoop – Apache Hadoop 3.3.6
jdk 1.8
三台机器尾号为:22, 23, 24。(没有用hadoop102, 103,104,我改为了hadoop22,hadoop23,hadoop24)
2. 配置22机器core-site.xml
cd $HADOOP_HOME/etc/hadoop
vi core-site.xml
-
-
-
fs.defaultFS -
hdfs://hadoop22:8020 -
-
-
-
-
hadoop.tmp.dir -
/opt/module/hadoop-3.3.4/data -
-
-
-
-
hadoop.http.staticuser.user -
atguigu -
3. 配置22机器得hdfs-site.xml
- <configuration>
- <!-- nn web端访问地址-->
- <property>
- <name>dfs.namenode.http-address</name>
- <value>hadoop22:9870</value>
- </property>
- <!-- 2nn web端访问地址-->
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>hadoop24:9868</value>
- </property>
- </configuration>
4. 配置22机器的yarn-site.xml
-
-
-
yarn.nodemanager.aux-services -
mapreduce_shuffle -
-
-
-
-
yarn.resourcemanager.hostname -
hadoop23 -
-
-
-
-
yarn.nodemanager.env-whitelist -
JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME -
5.配置22机器的mapred-site.xml
-
-
-
mapreduce.framework.name -
yarn -
6. 配置22机器workers文件:
- hadoop22
- hadoop23
- hadoop24
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
7.脚本发送到23,24机器:
xsync /opt/module/hadoop-3.3.4/etc/hadoop
8. 分别去23,24机器检查下是否发送成功。上述修改的文件是否是修改过的数据:
9. 如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。
生成机器id:
hdfs namenode -format
10. 启动hdfs
- # 例如我的路径/opt/module/hadoop-3.3.4/etc/hadoop
- # 在hadoop文件下,前面你自己的路径/etc/hadoop/
- # 输入命令
- sbin/start-dfs.sh
11. 在配置了ResourceManager的节点(hadoop23)启动YARN
sbin/start-yarn.sh
12. 如果启动失败,我是三台机器都删除了data,logs数据。重新从9步,重新生成机器id数据
比对配置文件是否错误,再次重新启动。即可解决~!