HBase-位置始终为零

时间:2018-07-31 09:32:33

标签: hdfs hbase phoenix

我们有一个集群(由Apache Phoenix作为协处理器),由6个数据节点与HBase区域服务器共同定位。 我们将所有选项都设置为启用:

  <property>
    <name>dfs.client.read.shortcircuit</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.client.read.shortcircuit.buffer.size</name>
    <value>131072</value>
  </property>
  <property>
    <name>dfs.domain.socket.path</name>
    <value>/var/run/hadoop-hdfs/dn._PORT</value>
  </property>

*我尝试删除套接字路径,RS失败并显示错误,因此它尝试使用短路。

同时在hdfs datanode日志中,我可以看到:

2018-07-31 09:20:30,539 INFO org.apache.hadoop.hdfs.server.datanode.DataNode.clienttrace: src: 127.0.0.1, dest: 127.0.0.1, op: REQUEST_SHORT_CIRCUIT_FDS, blockid: 1077953652, srvID: d67ca494-8813-4117-9009-9c34054eb4c3, success: true
2018-07-31 09:20:30,560 INFO org.apache.hadoop.hdfs.server.datanode.DataNode.clienttrace: src: 127.0.0.1, dest: 127.0.0.1, op: REQUEST_SHORT_CIRCUIT_FDS, blockid: 1077953658, srvID: d67ca494-8813-4117-9009-9c34054eb4c3, success: true
2018-07-31 09:20:30,567 INFO org.apache.hadoop.hdfs.server.datanode.DataNode.clienttrace: src: 127.0.0.1, dest: 127.0.0.1, op: REQUEST_SHORT_CIRCUIT_FDS, blockid: 1077954458, srvID: d67ca494-8813-4117-9009-9c34054eb4c3, success: true
2018-07-31 09:20:30,930 INFO org.apache.hadoop.hdfs.server.datanode.DataNode.clienttrace: src: 127.0.0.1, dest: 127.0.0.1, op: RELEASE_SHORT_CIRCUIT_FDS, shmId: 72430b904199e87f54f9b59eca2d3e0d, slotIdx: 13, srvID: d67ca494-8813-4117-9009-9c34054eb4c3, success: true
2018-07-31 09:20:30,934 INFO org.apache.hadoop.hdfs.server.datanode.DataNode.clienttrace: src: 127.0.0.1, dest: 127.0.0.1, op: RELEASE_SHORT_CIRCUIT_FDS, shmId: 72430b904199e87f54f9b59eca2d3e0d, slotIdx: 15, srvID: d67ca494-8813-4117-9009-9c34054eb4c3, success: true
2018-07-31 09:20:30,935 INFO org.apache.hadoop.hdfs.server.datanode.DataNode.clienttrace: src: 127.0.0.1, dest: 127.0.0.1, op: RELEASE_SHORT_CIRCUIT_FDS, shmId: 72430b904199e87f54f9b59eca2d3e0d, slotIdx: 16, srvID: d67ca494-8813-4117-9009-9c34054eb4c3, success: true

但是,即使在major_compaction之后,HBase仍报告所有区域服务器的零本地性: Regions/data size/locality

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以通过浏览Namenode UI的浏览文件系统实用程序来检查块分配。转到hbase文件位置,然后在区域名称下找到块位置。如果将块复制到同一区域服务器上,但您的位置仍然为0,则可能是由于不同的主机名所导致,分别向HMaster和Namenode注册了区域服务器节点和数据节点。您可以在Hbase主UI上的“区域服务器”下检查区域服务器名称,同样可以在“名称节点” UI中检查数据节点名称。

如果两个地方的主机名都不相同,则可能是位置0的原因。启动时,HRegionServer确实会从master撤消DNS查找,将ip添加到master和区域服务器的/ etc / hosts中的主机映射应该可以解决此问题。注意:您必须在/ etc / hosts中添加条目后重新启动区域服务器