文章目录

  • 一、配置文件
  • 二、启动Journalnode
  • 三、删除tmp和logs文件夹
  • 四、HDFS格式化
  • 五、同步元数据(分发tmp文件给从机)
  • 五、启动namenode
  • 六、初始化Zookeeper
  • 七、全部开启
  • 八、测试
  • 九、配置高可用YARN
  • 1.配置 yarn-site.xml
  • 2.启动YARN
  • 3.配置Windows系统中的hosts文件


假如我们要配置3台:hadoop100,hadoop101,hadoop102

一、配置文件

1、core-site.xml

<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://hadoopHA</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/root/software/hadoop/tmp</value>
</property>
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop100:2181,hadoop101:2181,hadoop102:2181</value>
</property>
</configuration>

2、hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop101:50090</value>
</property>

<property>
    <name>dfs.nameservices</name>
    <value>hadoopHA</value>
</property>
<!-- 集群中 NameNode 节点都有哪些,这里是 nn1 和 nn2 -->
<property>
    <name>dfs.ha.namenodes.hadoopHA</name>
    <value>nn1,nn2</value>
</property>
<!-- nn1 的 RPC 通信地址 -->
<property>
    <name>dfs.namenode.rpc-address.hadoopHA.nn1</name>
    <value>hadoop100:9000</value>
</property>
<!-- nn2 的 RPC 通信地址 -->
<property>
    <name>dfs.namenode.rpc-address.hadoopHA.nn2</name>
    <value>hadoop103:9000</value>
</property>
<!-- nn1 的 http 通信地址 -->
<property>
    <name>dfs.namenode.http-address.hadoopHA.nn1</name>
    <value>hadoop100:50070</value>
</property>
<!-- nn2 的 http 通信地址 -->
<property>
    <name>dfs.namenode.http-address.hadoopHA.nn2</name>
    <value>hadoop103:50070</value>
</property>
<!-- 指定 NameNode 元数据在 JournalNode 上的存放位置 -->
<property>
    <name>dfs.namenode.shared.edits.dir</name>    
    <value>qjournal://hadoop100:8485;hadoop101:8485;hadoop103:8485/hadoopHA</value>
</property>
<!-- 配置隔离机制,即同一时刻只能有一台服务器对外响应 -->
<property>
    <name>dfs.ha.fencing.methods</name>
    <value>
	sshfence
	shell(/bin/true)
    </value>
</property>
<!-- 使用隔离机制时需要 ssh 无秘钥登录-->
<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
</property>
<!-- 声明 journalnode 服务器存储目录-->
<property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/soft/hadoop/data/jn</value>
</property>
<!-- 关闭权限检查-->
<property>
    <name>dfs.permissions.enable</name>
    <value>false</value>
</property>
<!-- 访问代理类:client,mycluster,active 配置失败自动切换实现方式-->
<property>
    <name>dfs.client.failover.proxy.provider.hadoopHA</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!--设置自动故障转移-->
<property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
</property>
</configuration>

二、启动Journalnode

sbin/hadoop-daemon.sh start journalnode

三、删除tmp和logs文件夹

所有机器都删除

rm -rf logs/
rm -rf tmp/

四、HDFS格式化

主节点

bin/hdfs namenode -format

五、同步元数据(分发tmp文件给从机)

主节点

scp -r tmp/ root@hadoop101:$PWD
scp -r tmp/ root@hadoop102:$PWD

五、启动namenode

配置namenode的节点同时启动

sbin/hadoop-daemon.sh start namenode

可以jps看一下namenode是否起来

六、初始化Zookeeper

开启Zookeeper进程

zookeeper/bin/zkServer.sh start

主节点

bin/hdfs zkfc -formatZK

七、全部开启

主节点

sbin/start-dfs.sh

利用jps查看节点进程是否起来

八、测试

将其中一个namenode节点kill掉,看另外的namenode 节点是否能变成Active

hadoop100

hadoop hbase hive高可用 hadoop高可用配置_大数据


hadoop103

hadoop hbase hive高可用 hadoop高可用配置_zookeeper_02


现在kill掉hadoop100的namenode(模拟宕机)

hadoop hbase hive高可用 hadoop高可用配置_xml_03


kill掉之后再来看看 hadoop103,是否变成Active

hadoop hbase hive高可用 hadoop高可用配置_zookeeper_04

九、配置高可用YARN

1.配置 yarn-site.xml

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop100</value>
</property>
<!--启用 resourcemanager ha-->
<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
</property>
<!--声明两台 resourcemanager 的地址-->
<property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>cluster-yarn1</value>
</property>
<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>hadoop100</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>hadoop103</value>
</property>
<!--指定 zookeeper 集群的地址-->
<property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>hadoop100:2181,hadoop101:2181,hadoop103:2181</value>
</property>
<!--启用自动恢复-->
<property>
    <name>yarn.resourcemanager.recovery.enabled</name>
    <value>true</value>
</property>
<!--指定 resourcemanager 的状态信息存储在 zookeeper 集群-->
<property>
    <name>yarn.resourcemanager.store.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>

2.启动YARN

在hadoop100节点上启动

start-yarn.sh

在hadoop103节点上启动

yarn-daemon.sh start resourcemanager

3.配置Windows系统中的hosts文件

hadoop hbase hive高可用 hadoop高可用配置_zookeeper_05


最后一行添加:各个机器的IP 主机名

hadoop hbase hive高可用 hadoop高可用配置_hadoop_06


保存退出后,在浏览器中输入103(备份机器的IP:8088),会自动跳转到hadoop100的yarn

hadoop hbase hive高可用 hadoop高可用配置_hdfs_07