HDFS高可用(HA)配置
2017-11-18 20:32
363 查看
关于HDFS HA如何进行设计,请查看——>HDFS高可用(HA)设计,以下的配置也都是根据此文中的设计方式进行配置,所以为了更好的理解下面各个配置的含义,务必先阅读此文。
对各个节点进行划分:
此处不再需要SecondaryNameNode,因为SecondaryNameNode的作用时合并镜像文件和日志文件,防止下次启动时读取数据的速度太慢,而配置高可用之后不需要再次启动。
这里的配置将基于之前已经配置过的hadoop分布式集群进行配置,集群搭建这里不再进行讨论,至于如何配置hadoop分布式集群,请查看——>Hadoop集群搭建——环境配置
配置core-site.xml
配置hdfs-site.xml
2、格式化nn1,并启动nn1的namenod
3、在nn2上执行如下命令从nn1上拷贝格式化生成的镜像文件,并启动nn2的namenode
4、逐个启动datanode
5、将nn1设置为Active NameNode
core-site.xml中增加如下配置
(2)启动Zookeeper集群
(3)初始化HA在Zookeeper中状态
初始化成功,会提示 Successfully created /hadoop-ha/ns1 in ZK.
通过zk客户端进行查看会发现确实创建了/hadoop-ha/ns1目录
(4)启动HDFS服务
在各个NameNode节点上启动DFSZK Failover Controller,现在哪个主机上启动,那个主机NameNode就是Active NameNode。
(5)验证自动故障转移配置成功。
将Active NameNode进程杀死,查看Standby是否会迅速转换成Active
将Active NameNode网络断开,查看Standby是否会迅速转换成Active
对各个节点进行划分:
选项 | 主机1 | 主机2 | 主机3 |
---|---|---|---|
NameNode | NameNode | ||
JournalNode | JournalNode | JournalNode | |
DataNode | DataNode | DataNode |
这里的配置将基于之前已经配置过的hadoop分布式集群进行配置,集群搭建这里不再进行讨论,至于如何配置hadoop分布式集群,请查看——>Hadoop集群搭建——环境配置
配置HDFS HA
以下的配置也是根据官方文档进行的配置,您也可以直接查看官方文档配置core-site.xml
<configuration> <!--配置客户端的ns--> <property> <name>fs.defaultFS</name> <value>hdfs://ns1</value> </property> <!--临时目录--> <property> <name>hadoop.tmp.dir</name> <value>/home/bxp/Documents/install/hadoop-2.6.5-hdfsha/data/tmp</value> </property> <!--垃圾回收--> <property> <name>fs.trash.interval</name> <value>420</value> </property> </configuration>
配置hdfs-site.xml
<configuration> <!--nameservices,管理namenode的空间--> <property> <name>dfs.nameservices</name> <value>ns1</value> </property> <!--配置nameservices所管理的namenode,即ns1管理的namenode为nn1,nn2--> <property> <name>dfs.ha.namenodes.ns1</name> <value>nn1,nn2</value> </property> <!--配置两个namenode所在主机--> <property> <name>dfs.namenode.rpc-address.ns1.nn1</name> <value>hadoop-series.bxp.com:8020</value> </property> <property> <name>dfs.namenode.rpc-address.ns1.nn2</name> <value>hadoop-series1.bxp.com:8020</value> </property> <!--配置两个namenode的web 50070端口--> <property> <name>dfs.namenode.http-address.ns1.nn1</name> <value>hadoop-series.bxp.com:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>hadoop-series1.bxp.com:50070</value> </property> <!--jernalNode所在主机--> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://hadoop-series.bxp.com:8485;hadoop-series1.bxp.com:8485;hadoop-series2.bxp.com:8485/ns1</value> </property> <!--配置客户端代理--> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <!--配置两个namenode之间的隔离方式--> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <!--此处是自己主机的ssh-key路径 注意:此处使用的是ssh隔离方式,必须提前配置两个namenode所在主机之间能够进行无密钥登陆,否则会失败 --> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/bxp/.ssh/id_rsa</value> </property> <!--配置jernal日志文件存放在本地磁盘的那个目录下--> <property> <name>dfs.journalnode.edits.dir</name> <value>/home/bxp/Documents/install/hadoop-2.6.5-hdfsha/data/dfs/jn</value> </property> <!-- 副本数量不需要进行控制,默认就可以--> <!-- <property> <name>dfs.replication</name> <value>1</value> </property> --> <!-- secondaryNamenode放在第hadoop-series2.bxp.com上--> <!-- <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop-series2.bxp.com:50070</value> </property> --> </configuration>
启动HDFS HA集群
1、逐个启动journalnodesbin/hadoop-daemon.sh start journalnode
2、格式化nn1,并启动nn1的namenod
bin/hdfs namenode -format sbin/hadoop-daemon.sh start namenode
3、在nn2上执行如下命令从nn1上拷贝格式化生成的镜像文件,并启动nn2的namenode
bin/hdfs namenode -bootstrapStandby sbin/hadoop-daemon.sh start namenode
4、逐个启动datanode
sbin/hadoop-daemon.sh start datanode
5、将nn1设置为Active NameNode
bin/hdfs haadmin -transitionToActive nn1
Zookeeper实现namenode间自动故障转移
启动后都是Standby,通过Zookeeper选举一个为Active。并通过zookeeper监控两个namenode。(ZKFC, FailoverController)1、配置自动故障转移
hdfs-site.xml中增加如下配置<!--下面时配置自动故障转移--> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property>
core-site.xml中增加如下配置
<!--指定zookeeper所在主机--> <property> <name>ha.zookeeper.quorum</name> <value>hadoop-series.bxp.com:2181,hadoop-series1.bxp.com:2181,hadoop-series2.bxp.com:2181</value> </property>
2、重新启动集群
(1)关闭所有的HDFS服务(2)启动Zookeeper集群
zookeeper-3.5.0-alpha/bin/zkServer.sh start
(3)初始化HA在Zookeeper中状态
bin/hdfs zkfc -formatZK
初始化成功,会提示 Successfully created /hadoop-ha/ns1 in ZK.
通过zk客户端进行查看会发现确实创建了/hadoop-ha/ns1目录
zookeeper-3.5.0-alpha/bin/zkCli.sh ls /hadoop-ha
(4)启动HDFS服务
在各个NameNode节点上启动DFSZK Failover Controller,现在哪个主机上启动,那个主机NameNode就是Active NameNode。
sbin/hadoop-daemon start zkfc
(5)验证自动故障转移配置成功。
将Active NameNode进程杀死,查看Standby是否会迅速转换成Active
kill -9 16299
将Active NameNode网络断开,查看Standby是否会迅速转换成Active
service network stop
相关文章推荐
- Hadoop 2.2.0 HDFS HA高可用安装与配置
- hadoop系列文档3-配置Hdfs高可用HA
- hadoop系列文档3-配置Hdfs高可用HA
- Hadoop 2、配置HDFS HA (高可用)
- Hadoop 2、配置HDFS HA (高可用)
- Hadoop基础教程-第9章 HA高可用(9.2 HDFS 高可用配置)(草稿)
- Hadoop 2、配置HDFS HA (高可用)
- Ambari—HDFS配置NameNode HA高可用原理和操作步骤(一)
- Hadoop之HDFS的配置------HA(高可用版本)
- Hadoop分布式文件存储系统HDFS高可用HA搭建(何志雄)
- Hadoop2.6.4 HA 高可用分布式集群安装配置详细步骤
- HDFS HA系列实验之五:client 配置
- Heartbeat+Haresources+NFS配置一个简单的HA高可用+资源共享集群
- HDFS高可用(HA)设计
- HDFS HA全新安装配置
- Hadoop 2.x之HDFS利用QJM实现HA高可用
- HA-heartbeat高可用双击热备安装配置详解
- Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置
- hadoop2.7 HA 高可用配置
- 3.配置HDFS HA