1.hadoop的dfs.nameservices如何配置?
2.集群配置中hdfs://mycluster的作用是什么?
3.如何将namenode2切换为active状态?

在参考本手册前请确保Hadoop中HDFS组件已经成功部署并正常运行,同时系统基本环境完备,包括ssh免密码登录、/etc/hosts等。
         假设目前NameNode在服务器namenode1上运行,服务器namenode2作为standbynamenode,确保namenode2上至少已经安装了namenode服务。
         操作过程中尽量避免使用root用户操作,这里假设使用hadoop用户操作,具体部署步骤如下:
1.        关闭所有节点上的HDFS进程,主要是namenode1上的namenode和datanode进程。
2.        修改系统配置文件core-site.xml和hdfs-site.xml

  • hdfs-site.xml中添加:
[XML] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!-- HA Setup Head !--> 
         <property>
           <name>dfs.nameservices</name>
           <value>mycluster</value>
         </property>
 
         <property>
           <name>dfs.ha.namenodes.mycluster</name>
           <value>nn1,nn2</value>
         </property>
 
         <property>
           <name>dfs.namenode.rpc-address.mycluster.nn1</name>
           <value> namenode1:8020</value>
         </property>
         <property>
           <name>dfs.namenode.rpc-address.mycluster.nn2</name>
           <value> namenode2:8020</value>
         </property>
 
         <property>
           <name>dfs.namenode.shared.edits.dir</name>
           <value>qjournal://namenode1:8485;namenode2:8485/mycluster</value>
         </property>
 
         <property>
           <name>dfs.client.failover.proxy.provider.mycluster</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>/home/hadoop/.ssh/id_rsa</value>
         </property>
    <property>
           <name>dfs.ha.fencing.ssh.connect-timeout</name>
           <value>30000</value>
         </property>
 
         <property>
           <name>dfs.journalnode.edits.dir</name>
           <value>/path/to/hdfs/jn</value>
         </property>
 
<!-- HA Setup End !-->
  • core-site.xml中修改
fs.default hdfs://mycluster

注意:这些更改需要更新到每个运行HDFS进程的节点。
其中,namenode1和namenode2在hdfs-site.xml中有一项配置不同:

服务器 配置项
namenode1 dfs.namenode.http-address namenode1:50070
namenode2 dfs.namenode.http-address namenode2:50070

3.        分别在namenode1和namenode2上启动journalnode:
$HADOOP_HOME/sbin/hadoop-daemon.sh start  journalnode

4.        在namenode1上对journalnode的共享数据进行初始化,然后启动namenode进程:
$HADOOP_HOME/bin/hdfsnamenode  -initializeSharedEdits
$HADOOP_HOME/sbin/hadoop-daemon.sh start  namenode

5.        在namenode2上同步journalnode的共享数据,然后启动namenode进程:
$HADOOP_HOME/bin/hdfsnamenode  -bootstrapStandby
$HADOOP_HOME/sbin/hadoop-daemon.sh start  namenode

6.        分别在namenode1和namenode2中启动datanode:
$HADOOP_HOME/sbin/hadoop-daemon.sh  start datanode

7.        此时如果通过网页访问两个namenode的http-address,可以看到两个namenode都是standby状态,也可以通过hadoop自带的命令行工具来查看状态:
$HADOOP_HOME/bin/hdfs  haadmin -getServiceState  nn1
注意:此处的nn1为在hdfs-site.xml中配置的namenode服务的名称。

8.        确定要转为active的namenode的id,这里将namenode1设为active,使用命令行工具进行状态切换:
$HADOOP_HOME/bin/hdfs  haadmin -failover --forcefence --forceactive  nn2  nn1
注意:此处“nn2  nn1”的顺序表示active状态由nn2转换到nn1上(虽然nn2在转化前也是standby状态)。

9.        上一步中把namenode1的状态切换为active后,系统自动把namenode2上的namenode进程关闭,再把错误原因排除后重启该namenode进程,启动后该namenode状态为standby,等待下一次namenode1出现故障时即可将namenode2状态切换为active,使用命令行工具:
$HADOOP_HOME/bin/hdfs  haadmin -failover --forcefence --forceactive  nn1  nn2
         相应的,转换完以后namenode1上的namenode进程被关闭,需要排除故障后重新启动。

10.hdfs haadmin 

查考这里:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

参考本手册操作过程中,如遇实际错误,请自行查阅相关日志文件排除错误。

hadoop namenode ha--手动切换(转)的更多相关文章

  1. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置

    通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置 配置H ...

  2. hadoop NameNode HA 和ResouceManager HA

    官网配置地址: HDFS HA : http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSHighAvai ...

  3. Hadoop NameNode HA 和 ResourceManager HA

    1.集群规划 1.1 规划说明 hadoop1 cluster1 nameNode hadoop2 cluster1 nameNodeStandby ZooKeeper ResourceManager ...

  4. hadoop namenode HA集群搭建

    hadoop集群搭建(namenode是单点的)  http://www.cnblogs.com/kisf/p/7456290.html HA集群需要zk, zk搭建:http://www.cnblo ...

  5. Apache hadoop namenode ha和yarn ha ---HDFS高可用性

    HDFS高可用性Hadoop HDFS 的两大问题:NameNode单点:虽然有StandbyNameNode,但是冷备方案,达不到高可用--阶段性的合并edits和fsimage,以缩短集群启动的时 ...

  6. HADOOP namenode HA

    参考的文章:http://www.cnblogs.com/smartloli/p/4298430.html 当然,在操作的过程中,发现与上述文章中描述的还是有一些小小的区别. 配置好后,start-d ...

  7. hadoop yarn HA集群搭建

    可先完成hadoop namenode HA的搭建:http://www.cnblogs.com/kisf/p/7458519.html 搭建yarnde HA只需要在namenode HA配置基础上 ...

  8. hadoop NameNode 手动HA

    官网配置地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWit ...

  9. Hadoop集群搭建-HA高可用(手动切换模式)(四)

    步骤和集群规划 1)保存完全分布式模式配置 2)在full配置的基础上修改为高可用HA 3)第一次启动HA 4)常规启动HA 5)运行wordcount 集群规划: centos虚拟机:node-00 ...

随机推荐

  1. codemirror和ace editor的语法高亮

    两个javascript库用做在线代码编辑器都是非常优秀的选择 我这两天对这两个类库做了简单的研究,重点是语法高亮的自定义: ace editor的主要思路是生成状态机,从一个startstate开始 ...

  2. [BZOJ1691][Usaco2007 Dec]挑剔的美食家

    [BZOJ1691][Usaco2007 Dec]挑剔的美食家 试题描述 与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返了. ...

  3. static小结

    1.隐藏:编译多个文件时,所有未加static的全局变量.全局函数都具有全局可见性. 如果加了static,就会对其他源文件隐藏,利用这一特性可以在不同文件中定义相同的 变量名或函数名,而不用担心冲突 ...

  4. Mysql报错Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

    安装mysql后,启动时候没有启动成功,查看了下日志报错如下:---------------------------------------------1   可以:初始化mysql:mysql_in ...

  5. div元素抓取

    var files = $(".button").find("input[type='image']"); files.each(function() { $( ...

  6. 【架构】linkerd:来自Twitter为微服务而生的开源RPC解决方案

    大家要如何以规模化方式运维微服务应用程序?实践当中会出现哪些问题,我们又该如何加以解决?在大规模与非预测性工作负载场景当中,我们需要满足哪些条件才能运行一款大型微服务应用程序,而又能够确保不必受到功能 ...

  7. JavaScript Window对象

    1.Window对象的location属性引用的是Location对象,它表示该窗口中当前显示的文档的URL,并定义了方法来使窗口载入新的文档.Location对象的href属性是一个字符串,后者包含 ...

  8. Word Search I & II

    Word Search I Given a 2D board and a word, find if the word exists in the grid. The word can be cons ...

  9. 【leetcode】Path Sum II

    Path Sum II Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals ...

  10. C#之串口

    1.字符发送 string strSend = "00 01 02 03"; serialPort1.Write(strSend); 2.字符接收 ReadDataFromSeri ...