没想到时隔一年多,hadoop安装的文章突然这么多人看到,既然有人看,那我近期就把其他的实行手册一块整理一下,传上来。
不过课程已经是三年前的了,大概略有点老,手册仅供参考。
第一期的Hadoop大数据集群搭建(超详细):
Hadoop大数据集群搭建(超详细)_hadoop集群搭建-CSDN博客
第二期的ZooKeeper的下载及安装(接第一期的hadoop集群搭建)
ZooKeeper安装实行手册-CSDN博客
今天紧张先容HA高可用集群的搭建,在第二期ZooKeeper的基础上继续操作。
1. 修改core-site.xml
cd /export/servers/hadoop-3.1.3/etc/hadoop
vim core-site.xml
修改defaultFS并新增zookeeper
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
2. 修改hdfs-site.xml
cd /export/servers/hadoop-3.1.3/etc/hadoop
vim hdfs-site.xml
新增以下内容(上图没截全):
<!--设置namenode.name目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/export/data/hadoop/name</value>
</property>
<!--设置datanode.data目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/export/data/hadoop/data</value>
</property>
<!--开启WebHDFS-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!--指定HDFS的nameservice为ns1,需要和core-site.xml中的保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!--ns1下面有两个NameNode,分别是nn1和nn2-->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>hadoop01:9000</value>
</property>
<!--nn1的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>hadoop01:9870</value>
</property>
<!--nn2的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>hadoop02:9000</value>
</property>
<!--nn2的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>hadoop02:9870</value>
</property>
<!--指定NameNode的元数据在JournalNode上的存放位置-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>
qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns1
</value>
</property>
<!--指定JournalNode在本地磁盘存放数据的位置-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/export/data/hadoop/journaldata</value>
</property>
<!--开启NameNode失败自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--设置失败自动切换实现情势-->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
</value>
</property>
<!--设置隔离机制方法,多个机制用换行分割,既每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!--使用sshfence隔离机制时需要ssh免登录-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!--设置sshfence隔离机制超时时间-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
3. 修改mapred-site.xml
cd /export/servers/hadoop-3.1.3/etc/hadoop
vim mapred-site.xml
无改动
4. 修改yarn-site.xml
cd /export/servers/hadoop-3.1.3/etc/hadoop
vim yarn-site.xml
新增以下内容
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
<!--开启ResourceManager高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定ResourceManager的cluster id-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!--指定ResourceManager的名字-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--分别指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop02</value>
</property>
<!--指定zookeeper集群地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
5. 将设置文件xml发给hadoop02和03
在hadoop01上实行以下命令:
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/yarn-site.xml hadoop03:/export/servers/hadoop-3.1.3/etc/hadoop
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/hdfs-site.xml hadoop03:/export/servers/hadoop-3.1.3/etc/hadoop
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/core-site.xml hadoop03:/export/servers/hadoop-3.1.3/etc/hadoop
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/mapred-site.xml hadoop03:/export/servers/hadoop-3.1.3/etc/hadoop
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/yarn-site.xml hadoop02:/export/servers/hadoop-3.1.3/etc/hadoop
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/hdfs-site.xml hadoop02:/export/servers/hadoop-3.1.3/etc/hadoop
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/core-site.xml hadoop02:/export/servers/hadoop-3.1.3/etc/hadoop
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/mapred-site.xml hadoop02:/export/servers/hadoop-3.1.3/etc/hadoop
6. 修改/etc/profile
vim /etc/profile
新增
export HDFS_ZKFC_USER=root
分发profile文件到其他服务器
scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
传完之后要在hadoop01、02和03上分别实行source /etc/profile命令,来刷新设置文件
7. 第一次启动高可用集群(HA)
7.1 启动zookeeper
在三个虚拟机上分别实行
zkServer.sh start
查看状态
zkServer.sh status
7.2 启动JournalNode
在三个虚拟机上分别实行
hadoop-daemon.sh start journalnode (最新命令:hdfs --daemon start journalnode)
等候2分钟
7.3 格式化目录并复制到hadoop02
注意:只格式化一次,不要多次格式化,等候JournalNode实行2分钟后再实行
在hadoop01上实行
hadoop namenode -format
scp -r /export/data/hadoop/ hadoop02:/export/data
7.4 格式化ZKFC
在hadoop01上实行
hdfs zkfc -formatZK
7.5 启动HDFS
start-dfs.sh
7.6 启动YARN
start-yarn.sh
7.7 查看进程
jps
7.8 查看主备namenode
hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2
其他命令
#将standby状态namenode切换到active
hdfs haadmin -transitionToActive nn1
#将active状态namenode切换到standby
hdfs haadmin -transitionToStandby nn2
测试集群工作状态的一些指令 :
hdfs dfsadmin -report 查看hdfs的各节点状态信息
大概碰到的问题:
1. hadoop02的NameNode起来后很快就没了,可以使用下述命令再次重启
hdfs --daemon start namenode
2. datanode大概namenode大概其他进程没起来
查看log实现,查找对应的log
cd /export/servers/hadoop-3.1.3/logs
vim hadoop-root-namenode-hadoop01.log
8. 再次启动高可用集群
在3台虚拟机实行
zkServer.sh start
hadoop-daemon.sh start journalnode
等候1分钟
在hadoop01实行
start-dfs.sh
start-yarn.sh
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |