手动故障转移
(1)配置名称服务的逻辑名称
命令:vim $HADOOP_HOME/etx/Hadoop/hdfs-site.xml
内容处置:修改dfs.nameservices属性值为myCluster,可以取其他名称,没有添加即可
(2)为名称服务中每个NameNode配置唯一标志符
命令:vim $HADOOP_HOME/etx/Hadoop/hdfs-site.xml
内容处置:修改dfs.ha.namenodes.mycluster属性值为“NN1,NN2”,可以取其他名称,没有添加即可
(3)配置要监听的每个NameNode的完全限定的RPC地址
命令:vim $HADOOP_HOME/etx/Hadoop/hdfs-site.xml
内容处置:修改dfs.namenode.rpc-address.mycluster.nn1属性值为master:9000,修改dfs.namenode.rpc-address.mycluster.nn2的属性值为slave1:9000
(4)配置要监听的每个NameNode的完全限定HTTP地址
命令:vim $HADOOP_HOME/etx/Hadoop/hdfs-site.xml
内容处置:修改dfs.namenode.http-address.mycluster.nn1属性值为master:50070,修改dfs.namenode.http-address.mycluster.nn2的属性值为slave1:50070
(5)标志NameNodes将写入/读取编辑的JN组的URI
命令:vim $HADOOP_HOME/etx/Hadoop/hdfs-site.xml
内容处置:修改dfs.namenode.shared.edits.dir属性值为qjournal://master:8485;slave1:8485;slave2:8485/mycluster
(6)配置HDFS客户端用于练习Active NameNode的JAVA类
命令:vim $HADOOP_HOME/etx/Hadoop/hdfs-site.xml
内容处置:修改dfs.client.failover.proxy.provider.mycluster属性值为org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
(7)配置脚本或JAVA类的列表,用于在故障转移期间屏蔽Active NameNode
命令:vim $HADOOP_HOME/etx/Hadoop/hdfs-site.xml
内容处置:修改dfs.ha.fencing.methods属性值为sshfence,dfs.ha.fencing.ssh.private-key-files属性值为~/.ssh/id_rsa
(8)配置默认NameNode请求路径
命令:vim $HADOOP_HOME/etx/Hadoop/core-site.xml
内容处置:修改fs.defaultFS属性值为hdfs://mycluster
(9)配置JournalNode守护程序存储本地状态的路径
命令:vim $HADOOP_HOME/etx/Hadoop/core-site.xml
内容处置:修改dfs.journalnode.edits.dir属性值为$HADOOP_HOME/tmp
(10)启动所有节点上的JournalNode守护进程
命令:hadoop-daemon.sh start journalnode
(11)同步元数据
命令:
①新搭建集群
hdfs namenode -format
命令解释:新搭建集群应首先在其中一个NameNode上运行format命令
hdfs namenode -bootstrapStandby
命令解释:在未格式化的机器上运行该命令,目的是为了将NameNode元数据目录的内容复制到未格式化的NameNode上
②非新搭建集群
hdfs namenode -bootstrapStandby
命令解释:在未格式化的机器上运行该命令
(12)使用本地NameNode编辑目录中的编辑数据初始化JournalNode
命令:
①hadoop-daemon.sh start namenode
命令解释:关闭namenode
②hdfs namenode -initializeSharedEdits
命令解释:该命令为初始化命令
(13)开启集群
命令:start-dfs.sh
(14)通过浏览配置的HTTP地址分别访问每个NameNode的网页查看NameNode的状态(“active”或“standby”)
网址:
①master:50070
②slave1:50070
自动故障转移独立模式
(1)解压zookeeper3.4.6压缩包
命令:tar -zxvf zookeeper3.4.6
(2)创建软链接
命令:ln -s zookeeper3.4.6 zookeeper
(3)配置环境变量
命令:sudo vim /etc/profile
内容处置:添加以下内容
ZOOKEEPER_HOME=~/apps/zookeeper
PATH=$PATH:$ZOOKEEPER_HOME/bin
export ZOOKEEPER_HOME PATH
(4)生效配置文件
命令:source /etc/profile
(5)conf目录下复制zoo_sample.cfg并重命名为zoo.cfg
命令:cp zoo_sample.cfg zoo.cfg
内容处置:添加或修改以下内容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=$ZOOKEEPER_HOME/tmp/zookeeper
clientPort=2181
(6)在本地开启server
命令:zkServer.sh start
(7)使用客户端连接服务
命令:zkCli.sh [-server] [host]
(8)进行一些命令的操作
命令:help
(9)退出客户端
命令:quit/close
(10)关闭进程
命令:zkServer.sh stop
自动故障转移集群模式
(1)修改zoo.cfg文件
命令:cp zoo_sample.cfg zoo.cfg
内容处置:添加或修改以下内容
tickTime=2000
initLimit=5
syncLimit=2
dataDir=$ZOOKEEPER_HOME/tmp/zookeeper
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
(2)将修改后的zookeeper复制到其他slave从节点
命令:scp ~/apps/zookeeper3.4.6 用户名@slave:~/apps/
(3)添加myid文件
命令:vim $ZOOKEEPER_HOME/tmp/zookeeper/myid
内容处置:文件内容为server.x中的x,一一对应
注释:每台机器都要有myid文件且内容为其server.x中对应的x
(4)配置集群支持自动容灾
命令:vim $HADOOP_HOME/etx/Hadoop/hdfs-site.xml
内容处置:修改dfs.ha.automatic-failover.enabled属性值为true
(5)配置zookeeper服务器
命令:vim $HADOOP_HOME/etx/Hadoop/core-site.xml
内容处置:修改ha.zookeeper.quorum属性值为master:2181,slave1:2181,slave2:2181
(6)在NameNode所在机器上格式化
命令:hdfs zkfc -formatZK
(7)测试
步骤:同二(14)