hadoop中HA的配置

集群分配

在五台机器上配置HA。分配如下:
5节点:
hadoop 01
namenode zkfc resourcemanager
hadoop 02
namenode zkfc resourcemanager
hadoop 03
datanode nodemanager journal node zookeeper
hadoop 04
datanode nodemanager journal node zookeeper
hadoop 05
datanode nodemanager journal node zookeeper

开始配置

1、删除原数据目录
删除集群中的所有hdptmp
rm -rf hdptmp/
2、安装zookeeper
将下载的安装包上传到hadoop03中,解压。
tar -zxvf zookeeper-…tar.gz -C 安装目录
3、修改配置文件
(可只保留bin,conf,lib,**.jar)
进入到zookeeper的conf中
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改:dataDir=/root/zkdata
末尾处添加:
(2888内部各个节点通信用的,3888投票选举用的)
server.1=hadoop03:2888:3888
server.2=hadoop04:2888:3888
server.3=hadoop05:2888:3888

三台机器都新建这个目录mkdir /root/zkdata
新建myid文件echo 1 > /root/zkdata/myid
其他机器上同样:
echo 2 > /root/zkdata/myid
echo 3 > /root/zkdata/myid

将zookeeper文件拷贝到其他机器上 :
scp -r zookeeper-** hadoop4:$PWD
scp -r zookeeper-** hadoop5:$PWD

启动zookeeper:
Zookeeper的bin目录下
zkServer.sh start
三台机器同样启动
jps:QuorumPeerMain

zkServer.sh status
三台中有一台的mode是leader

修改core-site.xml

在hadoop01上:

<configuration>
<!—指定hdfs的nameservice为ns1-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</ property >
<!—指定hadoop的临时目录-->
<property>
<name>hadoop.tmp.dir </name>
<value>/root/hdptmp</value>
</ property >
<!—指定zookeeper地址-->
<property>
<name>ha.zookeeper.quorum </name>
<value>hadoop03:2181, hadoop04:2181, hadoop05:2181</value>
</ property >
</ configuration >

修改hdfs-site.xml

<configuration>
<property>
	<name>dfs.nameservices</name>
	<value>ns1</value>
</property>
<property>
	<name>dfs.ha.namenodes.ns1</name>
	<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址,nn1所在地址  -->
<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:50070</value>
</property>
<!-- nn2的RPC通信地址,nn2所在地址 -->
<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:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode日志上的存放位置(一般和zookeeper部署在一起) -->
<property>
	<name>dfs.namenode.shared.edits.dir</name>
	<value>qjournal://hadoop03:8485;hadoop04:8485;hadoop05:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
	<name>dfs.journalnode.edits.dir</name>
	<value>/root/journaldata</value>
</property>
<!-- 这个是开启自动故障转移,如果你没有自动故障转移,这个可以先不配 -->
<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>
<property>
	<name>dfs.replication</name>
	<value>3</value>
</property>
<property>
	<name>dfs.permissions.enabled</name>
	<value>false</value>
</property>
<property>
	<name>dfs.blocksize</name>
	<value>134217728</value>
</property>
</configuration>

修改yarn-site.xml

<configuration>
<!--启用resourcemanager ha-->
<!--是否开启RM ha,默认是开启的-->
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
</property>
<!--声明两台resourcemanager的地址-->
<property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>yrc </value>
</property>
<property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
</property>
<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>hadoop03:2181,hadoop04:2181,hadoop05:2181</value>
</property>
<!--启用自动恢复,当任务进行一半,rm坏掉,就要启动自动恢复,默认是false--> 
<property>
   <name>yarn.resourcemanager.recovery.enabled</name>
   <value>true</value>
</property>
<!--指定resourcemanager的状态信息存储在zookeeper集群,默认是存放在FileSystem里面。--> 
<property>
   <name>yarn.resourcemanager.store.class</name>
 <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
</configuration>

修改slaves

hadoop03
hadoop04
hadoop05
然后将配置好的文件分发到其他机器上:

scp ./* hadoop02:$PWD
scp ./* hadoop03:$PWD
scp ./* hadoop04:$PWD
scp ./* hadoop05:$PWD

启动

1、分别在hadoop03,hadoop04,hadoop05启动zookeeper
bin/zkServer.sh start
2、手动启动journalnode(hadoop03,hadoop04,hadoop05)
sbin/hadoop-deamon.sh start journalnode
jps检查
3、格式化namenode
格式化第一台:bin/hdfs namenode -format
scp -r hdptmp/ hadoop02:/root/
4、格式化ZKFC(在hadoop01上执行就可以)
hdfs zkfc -formatZK
5、启动hdfs
6、启动yarn

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值