hadoop2.7.x搭建高可用集群

一、环境准备及规划

(1)三台虚拟服务器,系统版本为centos6.5

(2)分别在三台虚拟机上配置java运行环境,这里jdk的版本是1.8

(3)zookeeper集群搭建,搭建过程略;详细过程请参考其他博文。

(4)hadoop版本:hadoop2.7.1

(5)三台虚拟机的基本信息及每台机器上需要部署的服务:

主机名 IP 部署服务
hadoop01 192.168.18.180 quroumPeerMain、journalnode、namenode、datanode、resourceManager、nodeManager、zkFailoverContorl
hadoop02 192.168.18.181 quroumPeerMain、journalnode、namenode、datanode、resourceManager、nodeManager、zkFailoverContorl
hadoop03 192.168.18.182 quroumPeerMain、journalnode、datanode、nodeManager

(6)关闭三台虚拟机的防火墙,配置ssh免密码登录,命令如下:

         1、ssh-keygen     -t  rsa

         2、ssh-copy-id     主机名

        这里需要配置免密码登录机器分别是hadoop01和hadoop02

二、QJM方式namenode的高可用搭建

(1)找到hadoop2.7.1.tar.gz所在位置,这里我放在了/home目录下;将其解压/usr/local目录下。

tar -zxvf /home/hadoop2.7.1 -C /usr/local/
(2)配置hadoop的运行环境,在hadoop安装目录下,编辑/etc/hadoop/hadoop-env.sh文件。

如上图所示,将JAVA_HOME的值改成jdk的安装目录
(3)配置hdfs.site.xml

	
	
	
	   dfs.permissions.enabled
	   false
	
	
	
	  dfs.replication
	  3
	
	
	
	  dfs.namenode.name.dir
	  /home/hadata/dfs/name
	
	
	
	  dfs.datanode.data.dir
	  /home/hadata/dfs/data
	
	
	
	  dfs.blocksize
	  134217728
	
	
	
	  dfs.namenode.edits.dir
	  /home/hadata/dfs/edits
	
	
	
	  dfs.webhdfs.enabled
	  true
	

	
	
	
	
	  dfs.nameservices
	  mycluster
	
	
	
	  dfs.ha.namenodes.mycluster
	  nn1,nn2
	
	
	
	  dfs.namenode.rpc-address.mycluster.nn1
	  hadoop01:9000
	
	
	
	  dfs.namenode.rpc-address.mycluster.nn2
	  hadoop02:9000
	
	
	
	  dfs.namenode.http-address.mycluster.nn1
	  hadoop01:50070
	
	
	
	  dfs.namenode.http-address.mycluster.nn2
	  hadoop02:50070
	
	
	
	  dfs.namenode.shared.edits.dir
	  qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/mycluster
	
	
	
	  dfs.client.failover.proxy.provider.mycluster
	  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.fencing.ssh.connect-timeout
	   30000
	
	
	
	  dfs.journalnode.edits.dir
	  /home/hadata/journalnode/data
	
	
	
	dfs.ha.automatic-failover.enabled
	   true
	
(4)配置core-site.xml



  fs.defaultFS
  hdfs://mycluster



   ha.zookeeper.quorum
   hadoop01:2181,hadoop02:2181,hadoop03:2181

(5)配置slaves(文件位置:hadoop安装目录下的etc/hadoop/slaves)
hadoop01
hadoop02
hadoop03
(6)由于上述操作都是在hadoop01这台主机上完成的,所以需要将配置好的hadoop分别发送给hadoop02和hadoop03。
scp -r /usr/local/hadoop2.7.1/ hadoop02:/usr/local/
三、格式化-启动-测试namenode的可高用
第一次启动时需要格式化,其余不需要。
(1)启动zookeeper集群
zkServer.sh start
(2)启动journalnode
hadoop-daemons.sh start journalnode
(3)格式化并启动一个namenode,这里在hadoop01上进行
格式化:hdfs namenode -format
启动:hadoop-daemons.sh start namenode
(4)在另一个namenode节点上同步已经格式化的namenode上的元数据
hdfs namenode -bootstrapStandby
(5)格式化zkfc
hdfs zkfc -formatZK
(6)启动hdfs
start-dfs.sh
(7)测试:
         访问http://192.168.18.180:50070,http://192.168.18.181:50070;杀死正在活跃的namenode,查看另外一个name能否激活;如果可以,那么hdfs的高可用搭建就好了。

四、resourceManager高可用的搭建

(1)配置yarn-site.xml


	
	
	  yarn.resourcemanager.ha.enabled
	  true
	
	
	
	  yarn.resourcemanager.ha.automatic-failover.enabled
	  true
	
	
	
	  yarn.resourcemanager.cluster-id
	  myclusteryarn
	
	
	
	  yarn.resourcemanager.ha.rm-ids
	  rm1,rm2
	
	
	
	  yarn.resourcemanager.hostname.rm1
	  hadoop01
	
	
	
	  yarn.resourcemanager.hostname.rm2
	  hadoop02
	
	
	
	  yarn.resourcemanager.webapp.address.rm1
	  hadoop01:8088
	
	
	
	  yarn.resourcemanager.webapp.address.rm2
	  hadoop02:8088
	
	
	
	  yarn.resourcemanager.zk-address
	  hadoop01:2181,hadoop02:2181,hadoop03:2181
	
	
	
		yarn.nodemanager.aux-services
		mapreduce_shuffle
	

(2)配置mapred-site.xml

	
	
	  mapreduce.framework.name
	  yarn
	
	
	
	  mapreduce.map.memory.mb
	  1024
	
	
	
	  mapreduce.jobhistory.address
	  hadoop01:10020
	
	
	
	  mapreduce.jobhistory.webapp.address
	  hadoop01:19888
	
(3)将上述两个配置文件分别发送到hadoop02和hadpoop03主机的相应位置,覆盖原来的配置文件。
cd /usr/local/hadoop2.7.1/etc/hadoop/
scp -r ./yarn-site.xml ./mapred-site.xml hadoop02:/usr/local/hadoop2.7.1/etc/hadoop/
(4)启动测试:
cd /usr/local/hadoop2.7.1/etc/hadoop/
启动yarn:start-yarn.sh
启动hadoop02上的resourcemanager:yarn-daemons.sh start resourcemanager
查看resourcemanager的状态:yarn rmadmin -getServiceState rm1/rm2
测试:yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /README.txt /output/result









你可能感兴趣的:(hadoop学习)