栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop之HA高可用

Hadoop之HA高可用

Hadoop之HA高可用
    • 1、集群规划
    • 2、前提
    • 3、免密配置
    • 4、修改hadoop配置文件
      • 4.1、hdfs高可用
        • 1、修改core-site.xml 添加如下配置文件
        • 2、修改hdfs-site.xml文件,添加如下内容
        • 3、将修改后的文件同步到另外两台机器
        • 4、删除之前hadoop的存储文件
        • 5、启动JN 存储hdfs元数据
        • 6、格式化namenode
        • 7、执行同步
        • 8、格式化ZK
        • 9、启动hdfs集群
      • 4.2、yarn高可用
        • 1、修改yarn-site.xml文件,并添加如下内容
        • 2、mapred-site.xml文件,并添加如下内容
        • 3、启动yarn
        • 4、在另外一台主节点上启动RM(node1)
    • 5、测试高可用
      • 1、在浏览器查看
      • 2、手动杀死master中的namenode进程
      • 3、再次访问wed界面
      • 4、重新启动master上的namenode

1、集群规划
ZooKeeperNameNodeDataNodeResourceManagerNodeManageJNZKFC
master11111
node11111111
node21111
2、前提

1、Zookeeper集群安装完毕
2、jdk安装完成等等

3、免密配置

注意:两台NameNode机器 (master、node1)都需要配置免密登录


4、修改hadoop配置文件 4.1、hdfs高可用 1、修改core-site.xml 添加如下配置文件

	
		fs.defaultFS
		hdfs://cluster
	
	
		hadoop.tmp.dir
		/usr/local/soft/hadoop-2.7.6/tmp
	
	
		fs.trash.interval
		1440
	
	
	      ha.zookeeper.quorum
	      master:2181,node1:2181,node2:2181
	

2、修改hdfs-site.xml文件,添加如下内容

	
	
		dfs.namenode.name.dir
		/usr/local/soft/hadoop-2.7.6/data/namenode
	
	
	
		dfs.datanode.data.dir
		/usr/local/soft/hadoop-2.7.6/data/datanode
	
	
	
		dfs.replication
		1
	
	
	
		dfs.permissions.enabled
		false
	
	
	
		dfs.webhdfs.enabled
		true
	
	
	
	
		dfs.nameservices
		cluster
	
	
	
		dfs.ha.namenodes.cluster
		nn1,nn2
	
	
	
		dfs.namenode.rpc-address.cluster.nn1
		master:8020
	
	
		dfs.namenode.rpc-address.cluster.nn2
		node1:8020
	
	
	
		dfs.namenode.http-address.cluster.nn1
		master:50070
	
	
		dfs.namenode.http-address.cluster.nn2
		node1:50070
	
	
	
		dfs.namenode.shared.edits.dir
		qjournal://master:8485;node1:8485;node2:8485/cluster
	
	
	
		dfs.journalnode.edits.dir
		/usr/local/soft/hadoop-2.7.6/data/journal
	
	
	
		dfs.client.failover.proxy.provider.cluster
		org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
	
	
	
		dfs.ha.fencing.methods
		sshfence
	
	
	
		dfs.ha.fencing.ssh.private-key-files
		/root/.ssh/id_rsa
	
	
	
		dfs.ha.automatic-failover.enabled
		true
	

3、将修改后的文件同步到另外两台机器

注意:此时只是core-site.xml与hdfs-site.xml两个配置文件与单namenode的hadoop集群不同,其它配置文件和单节点的相同,已经省略!!!

scp -r /usr/local/soft/hadoop-2.7.6/etc/hadoop/ node1:/usr/local/soft/hadoop-2.7.6/etc/
4、删除之前hadoop的存储文件

rm -rf /usr/local/soft/hadoop-2.7.6/tmp
启动Zookeeper集群,三台机器都要启动
zkServer.sh start

5、启动JN 存储hdfs元数据

三台三台机器 都要执行命令
hadoop-daemon.sh start journalnode
jps查看进程

6、格式化namenode

在一台namenode上面执行,master与node1上都可以,本文选择在master上面执行
hdfs namenode -format
启动当前的namenode
hadoop-daemon.sh start namenode


7、执行同步

在没有格式化的namenode上执行,本文没格式化的namenode是node1
在node1上执行
hdfs namenode -bootstrapStandby

8、格式化ZK

在已经启动的namenode上面执行(master)
!!一定要先 把zk集群正常 启动起来
hdfs zkfc -formatZK

9、启动hdfs集群

在启动了namenode的节点上执行(master)
start-dfs.sh
查看master与node1上的进程



至此,hdfs高可用搭建完成,有两个namenode,一个在master上,另一个在node1上

4.2、yarn高可用 1、修改yarn-site.xml文件,并添加如下内容

	
	
		yarn.nodemanager.aux-services
		mapreduce_shuffle
	
	
	
		yarn.web-proxy.address
		master:8888
	
	
	
		yarn.log-aggregation-enable
		true
	
	
	
		yarn.log-aggregation.retain-seconds
		604800
	
	
	
		yarn.nodemanager.remote-app-log-dir
		/logs
	
	
	
		yarn.nodemanager.resource.memory-mb
		2048
	
	
	
		yarn.nodemanager.resource.cpu-vcores
		2
	
	
	
	
		yarn.resourcemanager.ha.enabled
		true
	
	
	
		yarn.resourcemanager.ha.automatic-failover.enabled
		true
	
	
	
		yarn.resourcemanager.cluster-id
		yarncluster
	
	
	
		yarn.resourcemanager.ha.rm-ids
		rm1,rm2
	
	
	
		yarn.resourcemanager.hostname.rm1
		master
	
	
		yarn.resourcemanager.hostname.rm2
		node1
	
	
	
		yarn.resourcemanager.webapp.address.rm1
		master:8088
	
	
		yarn.resourcemanager.webapp.address.rm2
		node1:8088
	
	
	
		yarn.resourcemanager.zk-address
		master:2181,node1:2181,node2:2181
	
	
	
		yarn.resourcemanager.zk-state-store.parent-path
		/rmstore
	
	
	
		yarn.resourcemanager.recovery.enabled
		true
	
	
	
		yarn.resourcemanager.store.class
		org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
	
	
	
		yarn.nodemanager.recovery.enabled
		true
	
	
	
		yarn.nodemanager.address
		0.0.0.0:45454
	

2、mapred-site.xml文件,并添加如下内容

	
	
		mapreduce.framework.name
		yarn
	
	
	
		mapreduce.jobhistory.address
		node1:10020
	
	
	
		mapreduce.jobhistory.webapp.address
		node1:19888
	
	
	
		mapreduce.job.ubertask.enable
		true
	
	
	
		mapreduce.job.ubertask.maxmaps
		9
	
	
	
		mapreduce.job.ubertask.maxreduces
		1
	

将修改的yarn-site.xml与mapred-site.xml同步到另外两台机器上

scp -r /usr/local/soft/hadoop-2.7.6/etc/hadoop/ node1:/usr/local/soft/hadoop-2.7.6/etc/
3、启动yarn

在master启动start-yarn.sh

4、在另外一台主节点上启动RM(node1)

yarn-daemon.sh start resourcemanager


至此查看所有进程 jps,与我们集群规划的所有进程一致,Hadoop的HA高可用安装完毕


5、测试高可用 1、在浏览器查看

输入master与node1地址,
看到master处于active状态
node1处于standby状态


2、手动杀死master中的namenode进程

kill -9 2718

3、再次访问wed界面

发现node1已经处于active状态了

4、重新启动master上的namenode

hadoop-daemon.sh start namenode
查看master状态
发现其已经变成standby状态了


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/581689.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号