【问题标题】:HBase - locality always zeroHBase - 局部性始终为零
【发布时间】:2019-01-07 15:46:24
【问题描述】:

我们有一个包含 6 个数据节点的集群(Apache Phoenix 作为协处理器),这些节点与 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

但 HBase 报告所有 Region 服务器的局部性为零,即使在 major_compaction 之后也是如此: Regions/data size/locality

有人可以帮忙吗?

【问题讨论】:

    标签: hdfs hbase phoenix


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 2012-01-16
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多