分享

Port 9000 specified in URI hdfs://jzyc5.com:9000 but host 'jzyc5.com' is a lo...

ighack 2020-5-13 09:31:06 发表于 异常错误 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 5394
本帖最后由 ighack 于 2020-5-13 09:33 编辑

在做hadoop高可用的时候namenode启动不了
提示
Port 9000 specified in URI hdfs://jzyc5.com:9000 but host 'jzyc5.com' is a logical (HA) namenode and does not use port in formation

core-site.xml
我明明是
<name>fs.defaultFS</name>
    <value>hdfs://jzyc5.com</value>


hdfs-site.xml
<name>dfs.nameservices</name>
        <value>jzyc5.com</value>


这两个是一样的。还提示错误不知道是为什么

还有我以前是
<name>fs.defaultFS</name>
我做了hadoop namenode -format
还是不行
    <value>hdfs://jzyc5.com:9000</value>


是这样配的。还要改成高可用,修改了fs.defaultFS为什么没有改过来啊

已有(3)人评论

跳转到指定楼层
阿飞 发表于 2020-5-13 11:06:13
楼主最好贴出全部配置,看上去配置的确实有问题。

下面配置仅供参考:
core-site.xml :

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
……………………
-->

<!-- Put site-specific property overrides in this file. -->

configuration>
  <!-- 指定hdfs的nameservice为bi -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://bi/</value>
  </property>

  <!-- 指定hadoop临时目录 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/app/hadoop/tmp</value>
  </property>

  <!-- 指定zookeeper地址 -->
  <property>
    <name>ha.zookeeper.quorum</name>
    <value>mini03:2181,mini04:2181,mini05:2181,mini06:2181,mini07:2181</value>
  </property>

</configuration>


hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  ……………………
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
  <!--指定hdfs的nameservice为bi,需要和core-site.xml中的保持一致 -->
  <property>
    <name>dfs.nameservices</name>
    <value>bi</value>
  </property>

  <!-- bi下面有两个NameNode,分别是nn1,nn2 -->
  <property>
    <name>dfs.ha.namenodes.bi</name>
    <value>nn1,nn2</value>
  </property>

<!-- nn1的RPC通信地址 -->
  <property>
    <name>dfs.namenode.rpc-address.bi.nn1</name>
    <value>mini01:9000</value>
  </property>
  <!-- nn1的http通信地址 -->
  <property>
    <name>dfs.namenode.http-address.bi.nn1</name>
    <value>mini01:50070</value>
  </property>

  <!-- nn2的RPC通信地址 -->
  <property>
    <name>dfs.namenode.rpc-address.bi.nn2</name>
    <value>mini02:9000</value>
  </property>
  <!-- nn2的http通信地址 -->
  <property>
    <name>dfs.namenode.http-address.bi.nn2</name>
    <value>mini02:50070</value>
  </property>

  <!-- 指定NameNode的edits元数据在JournalNode上的存放位置 -->
  <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://mini05:8485;mini06:8485;mini07:8485/bi</value>
  </property>

  <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
  <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/app/hadoop/journaldata</value>
  </property>

  <!-- 开启NameNode失败自动切换 -->
  <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
  </property>

  <!-- 配置失败自动切换实现方式 -->
  <property>
    <name>dfs.client.failover.proxy.provider.bi</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>

<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
  <!-- 其中shell(/bin/true) 表示可执行一个脚本  比如 shell(/app/yunwei/hadoop_fence.sh) -->
  <property>
    <name>dfs.ha.fencing.methods</name>
    <value>
      sshfence
      shell(/bin/true)
    </value>
  </property>

  <!-- 使用sshfence隔离机制时需要ssh免登陆 -->
  <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/app/.ssh/id_rsa</value>
  </property>

  <!-- 配置sshfence隔离机制超时时间 单位:毫秒 -->
  <property>
    <name>dfs.ha.fencing.ssh.connect-timeout</name>
    <value>30000</value>
  </property>


</configuration>
回复

使用道具 举报

ighack 发表于 2020-5-13 11:43:21
本帖最后由 ighack 于 2020-5-13 11:44 编辑

core-site.xml
[mw_shl_code=xml,true]<property>
    <name>fs.defaultFS</name>
    <value>hdfs://jzyc5.com</value>
  </property>



<!--指定可以在任何IP访问-->
  <property>
    <name>hadoop.proxyuser.hduser.hosts</name>
    <value>*</value>
  </property>

<!--指定所有用户可以访问-->
  <property>
    <name>hadoop.proxyuser.hduser.groups</name>
    <value>*</value>
  </property>

<!-- 指定zookeeper地址 -->
<property>
        <name>ha.zookeeper.quorum</name>
        <value>jzyc1.com:2181,jzyc2.com:2181,jzyc3.com:2181,jzyc4.com:2181,jzyc5.com:2181</value>
</property>

<!-- hadoop链接zookeeper的超时时长设置 -->
<property>
        <name>ha.zookeeper.session-timeout.ms</name>
        <value>1000</value>
        <description>ms</description>
</property>[/mw_shl_code]

hdfs-site.xml
[mw_shl_code=xml,true]<!-- 配置namenode和datanode的工作目录-数据存储目录 -->

    <!--指定hdfs的nameservice为myha01,需要和core-site.xml中的保持一致
                 dfs.ha.namenodes.[nameservice id]为在nameservice中的每一个NameNode设置唯一标示符。
        配置一个逗号分隔的NameNode ID列表。这将是被DataNode识别为所有的NameNode。
        例如,如果使用"myha01"作为nameservice ID,并且使用"nn1"和"nn2"作为NameNodes标示符
    -->
    <property>
        <name>dfs.nameservices</name>
        <value>jzyc5.com</value>
    </property>

    <!-- myha01下面有两个NameNode,分别是nn1,nn2 -->
    <property>
        <name>dfs.ha.namenodes.jzyc5.com</name>
        <value>nn1,nn2</value>
    </property>

    <!-- nn1的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.jzyc5.com.nn1</name>
        <value>jzyc5.com:9000</value>
    </property>

    <!-- nn1的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.jzyc5.com.nn1</name>
        <value>jzyc5.com:50070</value>
    </property>

    <!-- nn2的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.jzyc5.com.nn2</name>
        <value>jzyc1.com:9000</value>
    </property>

    <!-- nn2的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.jzyc5.com.nn2</name>
        <value>jzyc1.com:50070</value>
    </property>

    <!-- 指定NameNode的edits元数据的共享存储位置。也就是JournalNode列表
                 该url的配置格式:qjournal://host1:port1;host2:port2;host3:port3/journalId
        journalId推荐使用nameservice,默认端口号是:8485 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://jzyc1.com:8485;jzyc2.com:8485;jzyc3.com:8485/jzyc5.com</value>
    </property>

    <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/data/hadoop/journaldata</value>
    </property>

    <!-- 开启NameNode失败自动切换 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>

    <!-- 配置失败自动切换实现方式 -->
    <property>
        <name>dfs.client.failover.proxy.provider.jzyc5.com</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>

    <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行 -->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>
            sshfence
        </value>
    </property>

    <!-- 使用sshfence隔离机制时需要ssh免登陆-->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/home/jzyc/.ssh/id_dsa</value>
    </property>
   
    <!-- 配置sshfence隔离机制超时时间 -->
    <property>
        <name>dfs.ha.fencing.ssh.connect-timeout</name>
        <value>30000</value>
    </property>

    <property>
        <name>ha.failover-controller.cli-check.rpc-timeout.ms</name>
        <value>60000</value>
    </property>
        
        <!--保证数据恢复 -->  
  <property>  
    <name>dfs.journalnode.http-address</name>  
    <value>0.0.0.0:8480</value>  
  </property>

  <property>  
    <name>dfs.journalnode.rpc-address</name>  
    <value>0.0.0.0:8485</value>  
  </property>

  <property>
    <name>ha.zookeeper.quorum</name>
    <value>jzyc1.com:2181,jzyc2.com:2181,jzyc3.com:2181,jzyc4.com:2181,jzyc5.com:2181</value>
  </property>
[/mw_shl_code]
回复

使用道具 举报

ighack 发表于 2020-5-13 16:06:45
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://jzyc5.com</value>
  </property>

我将这个值换掉不用机器名。换个别的逻辑名就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条