欢迎来看我的个人博客SkyAsh的小窝
集群规划
NameNode 和 SecondaryNameNode 和 ResourceManager 不要安装在同一台服务器 。
这三个都很消耗内存,所以最好分属不同服务器
hadoop102 | hadoop103 | hadoop104 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | Secondary NameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
配置集群
核心配置文件core-site.xml
进入目录
cd /opt/module/hadoop-3.3.1/etc/hadoop
vim core-site.xml
文件内容修改如下
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>atguigu</value>
</property>
</configuration>
HDFS 配置文件hdfs-site.xml
vim hdfs-site.xml
修改内容如下
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- NameNode web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- SecondaryNameNode web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>
之前核心配置文件中NameNode地址hdfs://hadoop102:8020相当于是hadoop内部通讯地址,
现在NameNode是HDFS需要用户在web界面上访问,不需要操作命令行,即也需要对外暴露一个接口hadoop102:9870
YARN 配置文件yarn-site.xml
vim yarn-site.xml
修改内容如下
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
MapReduce 配置文件mapred-site.xml
vim mapred-site.xml
修改内容如下
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
分发配置好的 Hadoop 配置文件
xsync /opt/module/hadoop-3.3.1/etc/hadoop/
启动集群
配置 workers
cd $HADOOP_HOME/etc/hadoop
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
该文件中添加的内容结尾不允许有空格
文件中不允许有空行。
同步配置文件
xsync /opt/module/hadoop-3.3.1/etc
启动
初始化(只有第一次需要)
hdfs namenode -format
启动 HDFS
回到原目录
cd /opt/module/hadoop-3.3.1
进入sbin目录
cd sbin
运行start-dfs.sh
./start-dfs.sh
在三台节点运行jps命令检查
jps
启动 YARN
进入hadoop103
进入原目录
cd /opt/module/hadoop-3.3.1
进入sbin目录
cd sbin
运行start-yarn.sh
./start-yarn.sh
再次在三台节点运行jps命令检查
Web 端查看
HDFS 的 NameNode
http://192.168.159.102:9870
YARN 的 ResourceManager
http://192.168.159.103:8088