访问HBase HDFS

在一些场景下,比如需要bulkload导入数据,需要打开HBase集群的HDFS端口。

  • 注意:HDFS端口打开后,因误操作HDFS导致的数据丢失等问题客户自身承担,客户需要对HDFS的操作比较了解。

  • 首先联系云HBase答疑(s0s3eg3),开通HDFS(由于HDFS的开放可能造成用户的恶意攻击,引起集群不稳定甚至造成破坏。因此此功能暂时不直接开放给用户,当用户特别需要的情况下,我们通过云HBase答疑后台开通,随后客户使用完成,再关闭)。

验证

  • 检查端口是否可以正常使用通过一个HDFS client访问云HBase上的HDFS(目标集群)。

  • 创建一个Hadoop客户端配置目录conf(如果使用客户端已存在这个目录则不需要另行创建)。

  • 添加以下两个HDFS配置到Hadoop客户端conf目录中。

    • core-site.xml

      <configuration>
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hbase-cluster</value>
      </property>
      </configuration>
    • hdfs-site.xml

      <configuration>
      <property>
          <name>dfs.nameservices</name>
          <value>hbase-cluster</value>
      </property>
      <property>
      <name>dfs.client.failover.proxy.provider.hbase-cluster</name>
      <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
      </property>
      <property>
      <name>dfs.ha.automatic-failover.enabled.hbase-cluster</name>
      <value>true</value>
      </property>
      <property>
          <name>dfs.ha.namenodes.hbase-cluster</name>
          <value>nn1,nn2</value>
      </property>
      <property>
          <name>dfs.namenode.rpc-address.hbase-cluster.nn1</name>
          <value>{hbase-header-1-host}:8020</value>
      </property>
      <property>
          <name>dfs.namenode.rpc-address.hbase-cluster.nn2</name>
          <value>{hbase-header-2-host}:8020</value>
      </property>
      </configuration>
      说明

      参数{hbase-header-1-host}和{hbase-header-2-host}通过提交工单获取。

  • 添加conf到Hadoop客户端classpath中。

  • 读写验证HDFS端口能否正常访问。

    echo "HDFS port test"  >/tmp/test
    hadoop dfs -put /tmp/test  /
    hadoop dfs -cat /test