HBase uses HDFS as a File System. HBase does not controls datalocality of HDFS blocks. 当使用hbase api向hbase写入数据时,则 HBase RegionServer becomes a client to HDFS 在hdfs中,如果客户机节点也是datanode,那么也会创建一个本地块。因此,当使用hbase api进行写操作时,localityindex很高。 当使用批量加载时,hdfs中已经存在hfiles。因为,它们已经出现在hdfs上了。hbase只会使这些hfile成为区域的一部分。在这种情况下,不能保证数据局部性。 如果您真的需要高数据局部性,那么我建议您使用hbase api进行写操作,而不是大容量加载。 我从mr的工作中一直在使用hbase api向hbase进行写操作,到目前为止,它们都工作得很好。
1条答案
按热度按时间7lrncoxx1#
HBase uses HDFS as a File System. HBase does not controls datalocality of HDFS blocks.
当使用hbase api向hbase写入数据时,则HBase RegionServer becomes a client to HDFS
在hdfs中,如果客户机节点也是datanode,那么也会创建一个本地块。因此,当使用hbase api进行写操作时,localityindex很高。当使用批量加载时,hdfs中已经存在hfiles。因为,它们已经出现在hdfs上了。hbase只会使这些hfile成为区域的一部分。在这种情况下,不能保证数据局部性。
如果您真的需要高数据局部性,那么我建议您使用hbase api进行写操作,而不是大容量加载。
我从mr的工作中一直在使用hbase api向hbase进行写操作,到目前为止,它们都工作得很好。