hdfs集群的HA

一、 配置非高可用的HDFS(用到了四台虚拟机分为node1、node2、node3、node4)
1、 下载hadoop-2.7.4.tar
2、 下载jdk-8u121-linux-x64.tar
3、 配置java环境变量
修改~/.bash_profile(开机就会读取这个文件,进行配置)

export JAVA_HOME=/opt/soft/jdk1.8.0_121/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

4、 将hadoop-2.7.4.tar上传到/opt/soft/并解压到当前文件夹
(5-9这在一台虚拟机上进行修改)
5、 修改hadoop-2.7.4中的etc/hadoop/ hadoop-env.sh
将JAVA_HOME进行修改
6、 修改hadoop-2.7.4中的etc/hadoop/core-site.xml

<configuration>
	<property>
	    <name>fs.defaultFS</name>
	    <value>hdfs://node1:9000</value>
	</property>
	<property>
	    <name>hadoop.tmp.dir</name>
	    <value>/opt/hadoop-2.5</value>
	</property>
</configuration>

7、 修改hadoop-2.7.4中的etc/hadoop/ hdfs-site.xml

<configuration>
	<property>
	 	<name>dfs.namenode.secondary.http-address</name>
		<value>node3:50090</value>
	</property>
	<property>
	    <name>dfs.replication</name>
	    <value>1</value>
	</property>
</configuration>

8、 vi编辑 hadoop-2.7.4中的etc/hadoop/ slaves
node3
node4
node5
9、 vi编辑 hadoop-2.7.4中的etc/hadoop/ masters
node2
10、修改/etc/hosts(四台虚拟机都要改)
192.168.1.10 node1
192.168.1.11 node2
192.168.1.12 node3
192.168.1.13 node4
11、配置互信ssh
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa生成密钥(公钥和私钥)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys(自己互信)
ssh-copy-id 主机名
12、将5-9修改的文件拷贝到其他虚拟机
例如: scp –r /opt/hadoop-2.7.4 node2:/opt/(拷贝文件夹)
scp /etc/.bash_profile node2:/etc/
13、进入到/opt/soft/hadoop-2.7.4/执行sbin/start-dfs.sh启动hdfs集群。
输入jps,在node1上应显示namenode在其他虚拟机显示datanode。
二、 配置zookeeper集群
1、 下载zookeeper-3.4.10.tar
2、 将zookeeper-3.4.10.tar上传到/opt/soft/并解压到当前文件夹
3、 在/opt/soft/ zookeeper-3.4.10/conf下进行vi zoo.cfg
tickTime=2000
dataDir=/opt/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=node2:2888:3888
server.2=node3:2888:3888
server.3=node4:2888:3888
4、 在/opt/zookeeper(dataDir)文件夹下vi myid
node2虚拟机的myid为1
node3虚拟机的myid为2
node4虚拟机的myid为3
5、 分别在三台虚拟机的/opt/soft/zookeeper-3.4.10/bin执行./zkServer.sh start启动zookeeper服务
6、 jps显示QuorumPeerMain
三、 配置hdfs的HA
1、 在四台虚拟机上执行 rm /opt/soft/Hadoop-2.7.4/etc/hadoop/masters
2、修改/opt/soft/Hadoop-2.7.4/etc/hadoop/core-site.xml

<configuration>
	<property>
	    <name>fs.defaultFS</name>
	    <value>hdfs://bjsxt</value>
	</property>
	<property>
	    <name>hadoop.tmp.dir</name>
	    <value>/opt/hadoop-2.7.4</value>
	</property>
	<property>
	   <name>ha.zookeeper.quorum</name>
	   <value>node4:2181,node2:2181,node3:2181</value>
	</property>
	</configuration>	

3、修改/opt/soft/hadoop-2.7.4/etc/hadoop/hdfs-site.xml

<configuration>
	<property>
	  <name>dfs.nameservices</name>
	  <value>bjsxt</value>
	</property>
	<property>
	  <name>dfs.ha.namenodes.bjsxt</name>
	  <value>nn1,nn2</value>
	</property>
	<property>
	  <name>dfs.namenode.rpc-address.bjsxt.nn1</name>
	  <value>node1:8020</value>
	</property>
	<property>
	  <name>dfs.namenode.rpc-address.bjsxt.nn2</name>
	  <value>node4:8020</value>
	</property>
	<property>
	  <name>dfs.namenode.http-address.bjsxt.nn1</name>
	  <value>node1:50070</value>
	</property>
	<property>
	  <name>dfs.namenode.http-address.bjsxt.nn2</name>
	  <value>node4:50070</value>
	</property>
	<property>
	  <name>dfs.namenode.shared.edits.dir</name>
	  <value>qjournal://node2:8485;node3:8485;node4:8485/bjsxt</value>
	</property>
	<property>
	  <name>dfs.client.failover.proxy.provider.bjsxt</name>
	<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
	<property>
	  <name>dfs.ha.fencing.methods</name>
	  <value>sshfence</value>
	</property>
	<property>
	  <name>dfs.ha.fencing.ssh.private-key-files</name>
	  <value>/root/.ssh/id_rsa</value>
	</property>
	<property>
	  <name>dfs.journalnode.edits.dir</name>
	  <value>/opt/hadoop-2.7.4/data</value>
	</property>
	<property>
	   <name>dfs.ha.automatic-failover.enabled</name>
	   <value>true</value>
	</property>
</configuration>

4、在node2、node3和node4上启动journalnode,
在/opt/soft/hadoop-2.7.4/执行
sbin/hadoop-daemon.sh start journalnode(此种方法可用于启动单个节点的某个服务,服务名替换journalnode即可)
5、在任意一个namenode下进行格式化,这里的namenode有node1和node4,
/opt/soft/hadoop-2.7.4/线执行bin/hdfs zkfc -formatZK (格式化zookeeper)之后执行bin/hdfs namenode –format(格式化namenode),将/opt/hadoop-2.7.4/dfs拷到另外一个namenode节点上,否则另外那个节点会因为格式化不成功而导致启动失败。
7、 在任意一个namenode的/opt/soft/hadoop-2.7.4/进行sbin/start-dfs.sh(启动hdfs集群)
jps:
node1下
3989 DFSZKFailoverController
3851 NameNode
node2下
4192 DataNode
3970 QuorumPeerMain
4037 JournalNode
node3下
4936 DataNode
4734 QuorumPeerMain
4782 JournalNode
node4下
4498 DataNode
4163 JournalNode
4100 QuorumPeerMain
4788 DFSZKFailoverController
4906 NameNode
四、 测试
http://192.168.1.10:50070
node1显示active
这里写图片描述
http://192.168.1.13:50070
node4显示standby
这里写图片描述
在node1上执行killall java,你会发现并不能访问http://192.168.1.10:50070,但能访问
http://192.168.1.13:50070,此时standby变为active。
这里写图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值