目录
一、集群部署规划
hadoop01 | hadoop03 | hadoop04 | |
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
注意:下文中涉及到一些配置文件的修改,有些文件已经在伪分布式集群中配置过,这里没有详细写,因此请参考我之前关于伪分布式搭建的两篇文章。
Hadoop2.7.3搭建伪分布式集群:https://blog.csdn.net/mango_ZZY/article/details/109138209
Hadoop2.7.3配置Yarn资源管理器:https://blog.csdn.net/mango_ZZY/article/details/109138209
二、配置集群
注意:这些文件在所有节点上都要更改,可以先改一个,然后分发给其他节点,具体分发步骤可以参考我的其他文章。!!!
(1)核心配置文件
①core-site.xml
进入hadoop-2.7.3下的etc文件,配置core-site.xml,这里我们把hadoop01当成Namenode,之前伪分布式集群配置过了,因此不用改
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.3/data/tmp</value>
</property>
(2)HDFS配置文件
①hadoop-env.sh
在搭建伪分布式的时候配置过,因此不用修改。
vim hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
②配置hdfs-site.xml
- 这里的副本数改回了3。
- secondary.namenode放在了hadoop04。
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop04:50090</value>
</property>
</configuration>
(3)YARN配置文件
①配置yarn-env.sh
之前搭建伪分布式的时候已经配置过,这里省略。
vim yarn-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
②配置yarn-site.xml
要把ResourceManager从hadoop01改成hadoop03。
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop03</value>
</property>
(4)MapReduce配置文件
①mapred-env.sh
之前搭建伪分布式的时候已经配置过,这里省略。
vim mapred-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
②mapred-site.xml
之前搭建伪分布式的时候已经配置过,这里省略。
(5)格式化各个节点
如果集群是第一次启动,需要格式化NameNode。
[root@hadoop01 hadoop-2.7.3]# hadoop namenode -format
如果集群之前启动过,还想进行格式化的话,要先删掉logs日志,再进行格式化NameNode。
rm -rf data/ logs/
注意:要把分布式集群中的每个节点都格式化!!
三、集群的单点启动
首先说一下为什么要测试单节点启动,而不能群起。因为还没有设置SSH免密登录,因此如果群起的话,各个节点之间的访问需要输入密码,很麻烦,下一篇我们将讲述如何设置SSH免密登录。
①在hadoop01上启动NameNode
[root@hadoop01 hadoop-2.7.3]# hadoop-daemon.sh start namenode
②在hadoop01上启动DataNode
[root@hadoop01 hadoop-2.7.3]# hadoop-daemon.sh start datanode
③在hadoop03上启动DataNode
[root@hadoop03 hadoop-2.7.3]# hadoop-daemon.sh start datanode
④在hadoop04上启动DataNode
[root@hadoop04 hadoop-2.7.3]# hadoop-daemon.sh start datanode
至此,集群已经成功启动了!
四、集群的单点关闭
①在hadoop01上关闭NameNode和DataNode
hadoop01:
[root@hadoop01 hadoop-2.7.3]# sbin/hadoop-daemon.sh stop datanode
[root@hadoop01 hadoop-2.7.3]# sbin/hadoop-daemon.sh stop namenode
②在hadoop03上关闭DataNode
hadoop03:
[root@hadoop03 hadoop-2.7.3]# sbin/hadoop-daemon.sh stop datanode
③在hadoop04上关闭DataNode
hadoop04:
[root@hadoop04 hadoop-2.7.3]# sbin/hadoop-daemon.sh stop datanode
至此,所有节点全部关闭了!