HDFS-HA的配置-----手动Failover方式

2019-03-28 13:28|来源: 网络

1、配置log的路径(可选)
etc/Hadoop/hadoop-env.sh
export HADOOP_LOG_DIR=/home/ziang/DfsDataDir/hdpcdh4/logs
export JAVA_HOME=/home/ziang/software/jdk1.7.0_05
log=$HADOOP_LOG_DIR/hadoop-$HADOOP_IDENT_STRING-$command.out

2、配置log文件的名字,使其没有hostname字符串。(可选)
sbin/hadoop-daemon.sh
export HADOOP_LOGFILE=hadoop-$HADOOP_IDENT_STRING-$command.log

3、配置etc/hadoop/core-site.xml
<property>
             <name>fs.defaUltFS</name>
             <value>hdfs://hdpcdh4</value>
</property>

4、配置etc/hadoop/hdfs-site.xml

<description>必须与core-site.xml中的配置一致</description>
        <name>dfs.nameservices</name>
        <value>hdpcdh4</value>
    </property>
    <property>
        <description>多个NN</description>
        <name>dfs.ha.namenodes.hdpcdh4</name>
        <value>nn1,nn2</value>
    </property>
    <property>
        <description>第一个NN的rpc端口配置</description>
        <name>dfs.namenode.rpc-address.hdpcdh4.nn1</name>
        <value>dw13:31313</value>
    </property>
    <property>
        <description>第一个NN的http端口配置</description>
        <name>dfs.namenode.http-address.hdpcdh4.nn1</name>
        <value>dw13:31314</value>
    </property>
    <property>
        <description>第二个NN的rpc端口配置</description>
        <name>dfs.namenode.rpc-address.hdpcdh4.nn2</name>
        <value>dw23:31313</value>
    </property>
    <property>
        <description>第二个NN的http端口配置</description>
        <name>dfs.namenode.http-address.hdpcdh4.nn2</name>
        <value>dw23:31314</value>
    </property>
    <property>
        <description>第一个NN和第二个NN共享的Edit目录</description>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>file:///home/ziang/NameNodeEdit</value>
    </property>
    <property>
        <description>client的failover代理配置</description>
        <name>dfs.client.failover.proxy.provider.hdpcdh4</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
        <description>各个NN独占的Name目录</description>
        <name>dfs.name.dir</name>
        <value>file:///home/ziang/DfsDataDir/hdpcdh4/namenode</value>
    </property>
    <property>
        <description>各个DN的数据存放目录</description>
        <name>dfs.data.dir</name>
        <value>file:///home/ziang/DfsDataDir/hdpcdh4/datanode</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.handler.count</name>
        <value>5</value>
    </property>
     <property>
         <name> dfs.ha.fencing.methods</name >
          <value> sshfence(ziang)</ value>
     </property>
     <property>
               <name> dfs.ha.fencing.ssh.connect-timeout</name >
               <value> 3</ value>
        </property>
        <property>
               <name> dfs.ha.fencing.ssh.private-key-files </name>
               <value> d:/home/ziangssh/id_rsa</value >
        </property>

5、格式化及同步两个NN的namespace文件
     1、在其中一个NN上执行格式化
          sh bin/hdfs namenode -format
     2、将格式化数据同步到另一个NN
scp  ~/DfsDataDir/hdpcdh4/namenode/current/* dw23:~/DfsDataDir/hdpcdh4/namenode/current/

6、启动Hdfs
     sh sbin/start-dfs.sh
     此时两个NN都是处于stanby状态,无法提供服务,可以通过DFSHAAdmin来将其中转化为active。

7、DFSHAAdmin使用
     1、将nn1转化为active
          bin/hdfs haadmin  -DFSHAadmin -transitionToActive nn1
    2、failover
          bin/hdfs haadmin -DFSHAadmin -failover nn1 nn2

8、手动的Failover到此OK了。

相关问答

更多
  • http://dev.mysql.com/doc/refman/5.6/en/windows-installation.html仔细看一下这个文档,写的很详细就是用英文写的。默认mysql是在DOS下启动的,如果你需要图形界面,还需要下载mysql workbench这个是可视化工具,很好用的哦。
  • 可以给你录制个教程~很详细给你说说该怎么配置~有需要可以加我.
  • 讲清楚是什么系统的安装
  • tomcat 除了要配下环境变量好象没什么要配的吧!!1 环境变量配置: C:\Sun\SDK\lib\ant\bin;C:\Sun\SDK\jdk\bin;D:\DevSuiteHome_2\jdk\jre\bin\classic;D:\DevSuiteHome_2\jdk\jre\bin;
  • 一、从myEclipse工作空间中删除工程,重新进行配置 二、在dubbo工程中删除myEclipse中生成的工程配置文件".project"(前面功能主要是为了下载代码,直接使用Git命令或者git客户端也可以实现,这里我使用myEclipse是为了展示egit插件): 三、使用maven命令编译项目需要的jar,或自动编译后生成到maven本地仓库: 1.使用dos进入check下来的源代码目录: 2.使用"mvn clean install -Dmaven.test.skip"命令进行编译: 3.编译 ...
  • 不是很明白。一般都是配置工程到服务器里面比如ant。或者直接载入配置服务器比如MyEclipse
  • 只是玩Hortonworks和Cloudera沙箱,我可以说打开和关闭它们似乎没有表现出任何“副作用”。 但是,每次启动集群时都需要启动所需的服务。 就真正的集群中的电源循环而言,建议在关闭电源之前停止在相应节点上运行的服务( stop-dfs.sh和stop-yarn.sh )。 这样就没有奇怪的问题,并且在停止服务的方式上的任何错误都将在每个节点上正确记录。 Just from playing around with the Hortonworks and Cloudera sandboxes, I c ...
  • Cloudera Manager不支持将多个NameNode添加到同一物理主机,因此无法进行列出的配置。 这是为了避免NameNode主机过载而设计的。 如果要为3个单独的命名空间启用高可用性,则需要将群集扩展为6个节点。 Cloudera Manager doesn't support adding multiple NameNodes to the same physical host, so the configuration you listed won't be possible. This is ...
  • namenode和jobtracker共享一个类似的HA实现,只要它们都扩展了相同的基类。 它们都使用后备zookeeper集群来决定哪个可用节点处于活动状态。 zookeeper中使用的位置是通过将故障转移组名称(即dfs.nameservices和mapred.job.tracker给出的值) mapred.job.tracker到可配置前缀来构造的。 对于这两种服务,默认情况下可配置前缀为/hadoop-ha 。 这意味着如果两个服务配置了相同的故障转移组名称(例如, my-application ) ...
  • 如果源不一定是netcat,那么我建议使用HTTP Source 。 在那里你可以指定任何标题,除了它可以非常类似于netcat源使用。 对于示例配置,您可以尝试 a1.sources = r1 a1.channels = c1 a1.sources.r1.type = http a1.sources.r1.port = 5140 a1.sources.r1.channels = c1 a1.channels = c1 a1.channels.c1.type = memory a1.channels.c1 ...