我们有一个由6个数据节点组成的集群(apachephoenix作为协处理器)与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数据节点日志中,我可以看到:
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报告所有区域服务器的位置都为零,即使在主要的区域/数据大小/位置压缩之后也是如此
有人能帮忙吗?
1条答案
按热度按时间5jvtdoz21#
您可以通过浏览namenodeui的browse file system实用程序来检查块分配。转到hbase文件位置,在region name下,您将找到block location。如果在同一个区域服务器上复制了块,但您的位置仍然是0,则可能是因为区域服务器节点和数据节点分别向hmaster和namenode注册的主机名不同。您可以在hbase master ui的region servers下检查region server名称,也可以在namenode ui中检查datanode名称。
如果两个地方的主机名不同,这可能是位置0的原因。hregionserver在启动时确实会从主服务器反向dns查找,在主服务器和区域服务器的/etc/hosts中添加ip到主机的Map应该可以解决此问题。。注意:在/etc/hosts中添加条目后,必须重新启动区域服务器