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

  • 注意:hdfs端口打开后,因误操作hdfs导致的数据丢失等问题客户自身承担,客户需要对hdfs的操作比较了解
  • 首先联系云HBase答疑(钉钉号),开通HDFS( 由于hdfs的开放可能造成用户的恶意攻击,引起集群不稳定甚至造成破坏。因此此功能暂时不直接开放给用户,当用户特别需要的情况下,我们通过云HBase答疑后台开通,随后客户使用完成,再关闭)

验证

  • 检查端口是否可以正常使用通过一个hdfs client访问云hbase上的hdfs(目标集群)
  • 创建一个hadoop客户端配置目录conf(如果使用客户端已存在这个目录则不需要另行创建)
  • 添加以下两个hdfs配置到hadoop客户端conf目录({hbase-header-1-host}和{hbase-header-1-host}可以咨询 云HBase答疑
    • 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.namenode.http-address.hbase-cluster.nn1</name>
    <value>{hbase-header-1-host}:50070</value>
</property>
  <property>
    <name>dfs.namenode.http-address.hbase-cluster.nn2</name>
    <value>{hbase-header-2-host}:50070</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>
  • 添加conf到hadoop 客户端classpath中
  • 读写验证hdfs端口能否正常访问
echo "hdfs port test"  >/tmp/test
hadoop dfs -put /tmp/test  /
hadoop dfs -cat /test