linux 安装hadoop 的四大运行模式——HA高可用分布模式(版本2.9.1)

hadoop的HA高可用配置:hadoop的名称节点部署在不同的服务器上(简单理解),具体定义请自行查询

备注:简述过程如果前面步骤按步骤进行,后续的步骤就不做详细解释

准备:创建h105作为高可用的名称节点(namenode),一般会再建议一个数据节点(及配置4个数据节点,两个名称节点),但本文作为学习,就不做累述,请自行学习

h105服务器的免登录要求与h101相同:

1、可以免登录(hadoop用户)本地

2、可以免登录h102、h103、h104 、h101服务器节点

3、设置h101可以免登录h105

h101:

h105:

前期准备基本完成:

HA高可用

————————————————————————————————————————————————

1、两个名称节点一个active(激活),一个standby(slave待命)

2、和客户端(数据节点等)交互的是active节点,standby不交互

3、两个名称节点通过JN守护进程组进行通信

4、同一时刻只能有一个激活态的名称节点

5、脑裂:两个名称节点都是激活态,为防止脑裂,JNs只允许同一时刻只有一个名称节点向其写数据,容灾发生后,成为active

节点的namenode接管向jn的写入工作。

备注:以上jn代表(journeyNode)     Quorum Journal Node(journeyNode群(一般三个))

硬件资源
--------------
    名称节点:   两个名称节点硬件配置相同。
    JN节点    :    轻量级进程,至少3个节点,允许挂掉的节点数 (n - 1) / 2.
                不需要再运行辅助名称节点。

配置HA细节:

1、h101和h105具有完全一致的配置,尤其是ssh.

2、[hdfs-site.xml]  文件配置:

      1>修改原来的dfs.nameservices属性

<property>
	<name>dfs.nameservices</name>
	<value>mycluster</value>
</property>

      2><!-- myucluster下的名称节点两个id -->

        <property>
			<name>dfs.ha.namenodes.mycluster</name>
			<value>nn1,nn2</value>
		</property>

    3><!--  配置每个nn的rpc地址。 -->  (注意与本地部署一致)   

        <property>
			<name>dfs.namenode.rpc-address.mycluster.nn1</name>
			<value>h101:8020</value>
		</property>
		<property>
			<name>dfs.namenode.rpc-address.mycluster.nn2</name>
			<value>h105:8020</value>
		</property>

4><!--  配置webui端口    -->(注意与本地部署一致)   

        <property>
			<name>dfs.namenode.http-address.mycluster.nn1</name>
			<value>h101:50070</value>
		</property>
		<property>
			<name>dfs.namenode.http-address.mycluster.nn2</name>
			<value>h105:50070</value>
		</property>

5>名称节点共享编辑目录.

        <property>
			<name>dfs.namenode.shared.edits.dir</name>
			<value>qjournal://s202:8485;s203:8485;s204:8485/mycluster</value>
		</property>

6>java类,client使用它判断哪个节点是激活态。

<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>	
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property>

7>脚本列表或者java类,在容灾保护激活态的nn.

        <property>
			<name>dfs.ha.fencing.methods</name>
			<value>
					sshfence
					shell(/bin/true)
			</value>
		</property>

		<property>
			<name>dfs.ha.fencing.ssh.private-key-files</name>
			<value>/home/hadoop/.ssh/id_rsa</value>
		</property>

8>配置JN存放edit的本地路径。

        <property>
			<name>dfs.journalnode.edits.dir</name>
			<value>/home/hadoop/hadoop/journal</value>
		</property>

3、[hdfs-site.xml]  文件配置:

1>配置hdfs文件系统名称服务。

        <property>
			<name>fs.defaultFS</name>
			<value>hdfs://mycluster</value>
		</property>

备注:以上的基本配置之后可以保证HA环境正常搭建,如果需要某些特定的配置,请自行查文档配置

由于我们前期是由完全分布式转换为HA环境,建议初学者重新对hdfs进行格式化操作(原来的数据会消失),使用方法一;若是正式的线上环境的话原始数据不能删除。请使用方法二。

启动方法一:

1、注意将原来启动的所有守护线程全部关闭,(最好清空/tmp(节点信息存放地址)和logs文件清空  ,防止出现问题)

2、在journalnode的节点上启动该守护线程(原因:hdfs在格式化的时候,会预先连接journalnode节点。)

若不启动journalnode节点会报错:

启动journalnode命令:$>hadoop-daemon.sh start journalnode

一次再h102、h103、h104上启动journalnode 

3、h101上运行命令 $>hdfs namenode -format    (格式化hdfs)

备注:会出现是否同步journalnode的信息,建议选择y  (由于不需要保存原来数据,所以建议)

4、然后关闭h102、h103、h104 上的journalnode守护进程

$>hadoop-daemon.sh stop journalnode

5、在h101上启动全部守护进程   

$>start-all.sh

备注:出现上面的守护进程显示,大致HA环境配置成功。

细节查看:

1>查看两个名称节点当前的运行状态(active或者standby,或是出现脑裂的情况)

$>hdfs haadmin getAllServiceStates

备注:可能使用命令:

$>hdfs haadmin -transitionToActive  nn1   (激活nn1节点)

$>hdfs haadmin -transitionToStandby nn1(使nn2节点进入待命状态)

$>hdfs haadmin -failover nn1 nn2   (nn1与nn2状态切换,模拟容灾(后续配置zookeeper后可以实现自动切换))

启动方法二:(保持原来数据)
1、将h101中dfs的文件夹copy到h105中(路径与h101一直(可使用scp命令))

$>scp -r /tmp/* centos@h105:/tmp    ([h101])

2、在新的nn(未格式化的nn)上运行一下命令,实现待命状态引导。  (h105)

$>hdfs namenode -bootstrapStandby        //需要h101为启动状态(同时journalnode守护进程处于启动状态),提示是否格式化,选择N.

3、在一个NN上执行以下命令,完成edit日志到jn节点的传输。
                $>hdfs namenode -initializeSharedEdits

4启动所有节点.
                [h101]
                $>hadoop-daemon.sh start namenode        //启动名称节点
                $>hadoop-daemons.sh start datanode        //启动所有数据节点

                [h105]
                $>hadoop-daemon.sh start namenode        //启动名称节点

备注:以上基本数配置成功。

配置文件:可以通过以下路径下载:

猜你喜欢

转载自blog.csdn.net/weixin_39435629/article/details/84841272
今日推荐