反馈已提交

网络繁忙

确认HDFS地址中的IP和端口

  • 文档创建者:Wendy123456
  • 历史版本:2
  • 最近更新:Roxy 于 2024-12-13
  • 1. 概述

    配置 星环 TRANSWARP INCEPTOR 数据源Hive 数据源 时,存在设置项 HDFS 地址。如下图所示:

    13.png

    HDFS 地址介绍:

    • 是 Hadoop HDFS 文件系统处于活跃状态的节点地址。

    • 格式为 "hdfs://ip:port";例如:hdfs://192.168.101.119:8020。

    本文将介绍确定 HDFS 地址中 IP 和端口的方法。

    2. 操作步骤

    2.1 确定端口号

    在数据库中使用 SQL 语句desc formatted <dbName>.<tableName>,在查询结果中查看 Location 行信息

    2.1.1 案例一

    从查询结果中,可发现端口号为 9000,主机名称为 hive1 。

    14.png

    2.1.2 案例二

    部分场景中,查询结果的 Location 行信息中没有端口号,此时使用默认端口号 8020 。如下图所示:

    从下图可看出,主机名称是 HDFS-HA 。

    1708414227465125.png

    2.1.3 案例三

    无法在 Location 中确认到端口号。

    文档1.png

    这种情况属于 HDFS 高可用集群架构。高可用架构里面有两个 NameNode ,这两个 NameNode 地位平等,其中一个是主 NameNode ,是Active 状态,另外一个 NameNode 是从, Standby 状态。两个 NameNode 同时启动,只有一个 NameNode 会进入工作状态。在任何时间点,其中之一 NameNode 是处于 Active 状态,另一种是在Standby 状态。 Active NameNode 负责所有的客户端的操作,而 Standby NameNode 尽可能用来保存好足够多的状态,以提供快速的故障恢复能力。通过 hdfs-site.xml 文件来确认HDFS节点的地址,一般高可用文件配置如下,获取NameNode 的 rpc 通讯端口号:

    hdfs-site.xml 
    <!-- 高可用架构下集群使用NameNode,配置集群标识, mycluster -->
    <property>
    <name>dfs.nameservices</name>
    <value>mycluster</value>
    </property>
    <!-- NameNode节点标识 -->
    <property>
    <name>dfs.ha.namenodes.mycluster</name>
    <value>nn1,nn2</value>
    </property>
    <!-- NameNode1的rpc通讯端口号 -->
    <property>
    <name>dfs.namenode.rpc-address.mycluster.nn1</name>
    <value>node00:8020</value>
    </property>
    <!-- NameNode2的rpc通讯端口号 -->
    <property>
    <name>dfs.namenode.rpc-address.mycluster.nn2</name>
    <value>node01:8020</value>
    </property>
    <!-- NameNode1的http通讯端口号 -->
    <property>
    <name>dfs.namenode.http-address.mycluster.nn1</name>
    <value>node00:50070</value>
    </property>
    <!-- NameNode2的http通讯端口号 -->
    <property>
    <name>dfs.namenode.http-address.mycluster.nn2</name>
    <value>node01:50070</value>
    </property>
    <!-- 配置共享存储 JN -->
    <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://node00:8485;node01:8485;node02:8485/mycluster</value>
    </property>
    <!-- 配置失败转移执行类 -->
    <property>
    <name>dfs.client.failover.proxy.provider.mycluster</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    </value>
    </property>
    <!-- 当进行切换时,通过何种机制杀死原先 active 的 namenode -->
    <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
    </property>
    <!-- SSH 私钥,上面杀掉原先进程使用sshfence方式需使用私钥 -->
    <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
    </property>
    <!-- JN 存放元数据的目录 -->
    <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/software/hadoop/hdfs/journalnode/data</value>
    </property>
    <!-- 当NameNode宕机,切换方式设置为自动 -->
    <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
    </property>

    2.2 获取IP

    在数据库所在的服务器中,ping 对应的主机名称。

    2.1.1 节示例中,主机名称为 hive1,在 hive 数据库所在的服务器上 ping,如下图所示:

    1708415193803883.png

    从上图可得出,hdfs 的 IP 就是 192.168.101.243 。

    2.1.2 节示例中,在 cdh 平台中查询活跃的 IP 地址,为 192.168.9.188 。如下图所示:

    1708415541956177.png

    2.1.3 节点示例中,由于 HDFS 的高可用是一主一备,只有主节点可以连上。主备可能会切换,所以需要用高可用的连接方式连接,配置方式如下:

    注:4.1.13.2 前不支持高可用配置,需要确认主节点地址。

    命令行查询主备状态:

    一般常用的服务都会提供自带的命令行(如 hdfs cli 等),可以通过特定命令+节点id 可以判断主备状态。

    HDFS NameNode 主备查询命令: 

    hdfs haadmin

    CDH中查看 HDFS 的各项参数,默认在路径/etc/hadoop/conf.cloudera.hdfs/hdfs-site.xml下。在 hdfs-site.xml 文件中,可以找到高可用相关的配置:
    高可用配置:

    <property>
      <name>dfs.ha.namenodes.sdg</name>
      <value>namenode25,namenode30</value>
    </property>

    从中可以看到,有两个 namenode,一个是主节点(active),一个是备用节点(standby)。
    如果使用命令行,查看主备的方法是用hdfs haadmin -getServiceState命令,如查看主节点:

    $ hdfs haadmin -getServiceState namenode30
    active
    $ hdfs haadmin -getServiceState namenode25
    standby

    进而去确认活跃节点的 ip

    注:4.1.13.2 及以上版本支持高可用配置方式。

    配置项
    说明
    HDFS地址4.1.13.2 及以上版本由原来的只可配置一个 HDFS 地址,变为可以配置多个 HDFS 地址,多个 HDFS 地址使用逗号隔开。

    例如:hdfs://ip1:port1,hdfs://ip2:port2,hdfs://ip3:port3

    后台利用用户配置的多个 HDFS 地址,构造连接 HDFS 时的配置文件进行连接。

    (如https://www.jianshu.com/p/3632bd69d64b里提及的方式一)

     




    附件列表


    主题: 配置数据源
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持