HDFS高可用配置

在前面安装完成完全分布式的基础上改造为高可用


1.安装启动zookeeper
a)上传解压zookeeper包
b)cp zoo_sample.cfg zoo.cfg修改zoo.cfg文件
c)dataDir=/opt/data/zookeeper
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
这里的node1是自己主机名,可以写ip
d)分别在node1  node2  node3 的数据目录/opt/data/zookeeper下面创建myid文件,里面写对应server.后面的数字
e)配置环境变量并source生效
export ZK_HOME=/opt/soft/zookeeper-3.4.6
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin
f)启动 zkServer.sh start启动,隔一分钟,通过zkServer.sh status查看状态

2.配置hadoop配置文件
 配置hdfs-site.xml
<property>
<name>dfs.nameservices</name>
<value>sxt</value>
</property>


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


<property>
<name>dfs.namenode.rpc-address.sxt.nn1</name>
<value>node1:8020</value>
</property>


<property>
<name>dfs.namenode.rpc-address.sxt.nn2</name>
<value>node2:8020</value>
</property>


<property>
<name>dfs.namenode.http-address.sxt.nn1</name>
<value>node1:50070</value>
</property>


<property>
<name>dfs.namenode.http-address.sxt.nn2</name>
<value>node2:50070</value>
</property>


<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node1:8485;node2:8485;node3:8485/sxt</value>
</property>


<property>
<name>dfs.client.failover.proxy.provider.sxt</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.ha.automatic-failover.enabled</name>
<value>true</value>
</property>


配置core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://sxt</value>
</property>


<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/data/journal</value>
</property>


<property>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property>


配置Slaves

node1

node2

node3


3.所有节点启动所有journalnode

hadoop-daemon.sh start journalnode


4.其中一个namenode节点执行格式化,比如node1
hdfs namenode -format

hadoop-daemon.sh start namenode


5.另外一个namenode节点格式化拷贝 比如 node2
首先要将刚才格式化之后的namenode启动起来才能拷贝的

hdfs namenode -bootstrapStandby


6.在ZK中创建znode来存储automatic Failover的数据,任选一个NN执行完成即可:

hdfs zkfc -formatZK





7.启动

先stop-dfs.sh

然后start-dfs.sh


8.验证,可以通过前面完全分布式的方式验证,也可以通过访问node或者node2的50070端口,比如我的node1的ip是192.168.116.3

就访问http://192.168.116.3:50070


通过命令hadoop fs -put /opt/1.txt /,确认文件是否能够上传。

9.注意事项:

9.1:第一次启动的时候,3、4、5、6步骤要逐步执行,后续启动的时候不需要执行,只要启动zookeeper服务、以及步骤7.

9.2:如果有问题需要格式namenode的时候,一定要先停止所有服务,手动删除namenode、zookeeper元数据文件夹。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值