HadoopHA(HDFS高可用)搭建

HadoopHA(HDFS高可用)

HDFS高可用环境搭建

一、克隆虚拟机

准备三台虚拟机

二、修改虚拟机相关配置

1.修改虚拟机ip地址
在这里插入图片描述
在这里插入图片描述
2.删除70-persistent-net.rules文件
在这里插入图片描述
3.修改虚拟机名称
在这里插入图片描述
在这里插入图片描述
4.修改hosts文件,将IP地址与主机名相映射
在这里插入图片描述
在这里插入图片描述
5.重启虚拟机
在这里插入图片描述
6.ping一下外网,看是否连接上网络
在这里插入图片描述
其余两台虚拟机也是上述配置,但需要保证三台虚拟机IP地址不同。这里我配置了/etc/sudoers文件,使得普通用户有了和root用户同样的权限,如果你使用的是root用户,可以省略掉sudo操作。

ssh免密码登陆设置

1.生成密钥
在这里插入图片描述
一路回车,直到出现如图所示的情况。
2.将公钥追加到其他两台机器上(包括自己)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置完成后登录到另外两台机器,不再需要密码
在这里插入图片描述
另外两台机器也是同样的配置。

配置jdk环境变量

1.进入hadoop21的/opt目录下,创建software和module两个文件夹
在这里插入图片描述
在这里插入图片描述
2.上传hadoop、zookeeper和jdk的tar.gz包到hadoop21的/opt/software目录下在这里插入图片描述
3.解压jdk到/opt/module目录
在这里插入图片描述
4.配置jdk环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置zookeeper

1.解压zookeeper到/opt/module
在这里插入图片描述
2.配置zookeeper环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.进入zookeeper的conf目录,将zoo_sample.cfg改名为zoo.cfg,配置zoo.cfg
在这里插入图片描述
4.在zookeeper目录下创建tmp/zookeeper文件夹,并在该目录下创建一个myid文件,内容为1
在这里插入图片描述
在这里插入图片描述

配置hadoop

1.解压hadoop到/opt/module
在这里插入图片描述
2.配置hadoop环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.在hadoop.env.sh中配置jdk环境变量
在这里插入图片描述
在这里插入图片描述
4.配置core-site.xml,配置内容如下

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/tmp</value>
</property>
<!--指定zookeeper地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop21:2181,hadoop22:2181,hadoop23:2181</value>
</property>
</configuration>

5.配置hdfs-site.xml,配置内容如下

<configuration>
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>hadoop21:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>hadoop21:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>hadoop22:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>hadoop22:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop21:8485;hadoop22:8485;hadoop23:8485/mycluster</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/module/hadoop-2.7.2/journaldata</value>
</property>
<!--开启namenode失败自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置失败自动切换实现方式-->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</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>/home/ysz/.ssh/id_rsa</value>
</property>
<!--配置sshfence隔离机制超时时间-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

6.将mapred-site.xml.template改名为mapred-site.xml,配置内容为

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

7.配置yarn-site.xml,配置内容为

<configuration>

<!-- Site specific YARN configuration properties -->
<!--开启RM高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定RM的cluster id-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!--指定RM的名字-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--分别指定RM的地址-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop21</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop22</value>
</property>
<!--指定zk集群地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop21:2181,hadoop22:2181,hadoop23:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

8.配置slaves
在这里插入图片描述
在这里插入图片描述
9.创建masters文件,并配置
在这里插入图片描述
在这里插入图片描述
注意:另外两台机器的环境变量和hadoop21相同,配置好环境变量,都要执行source /etc/profile命令

将module文件夹分发到另外两台机器

在这里插入图片描述
在这里插入图片描述
进入hadoop22机器上的zookeeper相应目录,修改myid文件
在这里插入图片描述
进入hadoop23机器上的zookeeper相应目录,修改myid文件
在这里插入图片描述

启动zookeeper集群

每台机器上分别执行zkServer.sh start命令,用jps命令查看是否启动成功
在这里插入图片描述

在每台机器上启动journalnode

在这里插入图片描述

在hadoop21上格式化namenode

在这里插入图片描述

将hadoop21中的元数据复制到hadoop22上

在这里插入图片描述

在hadoop21上格式化ZKFC

在这里插入图片描述

在hadoop21上启动hdfs

在这里插入图片描述

在hadoop21上启动yarn

在这里插入图片描述

在hadoop22上启动resourcemanager

在这里插入图片描述

登录到192.168.230.21:50070和192.168.230.22:50070

在这里插入图片描述
在这里插入图片描述
可以看到,hadoop21上的namenode为active,hadoop22上的namenode为standby

用kill -9命令杀掉hadoop21上的namenode

在这里插入图片描述
刷新192.168.230.22:50070,可以看到为active状态。到此HadoopHA(HDFS高可用)搭建完成!
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值