apachehbase:区域服务器如何将Hfile写入HDFS

apachehbase:区域服务器如何将Hfile写入HDFS,hbase,Hbase,这是通过HDFS API实现的吗?如果是这种情况,数据局部性是如何实现的[假设区域服务器和同一系统上的Datanode],即NameNode将根据其统计信息分配Datanode以存储数据 是的。HBase使用HFileSystem(文件系统对象的封装)来访问数据。更多信息,请参阅 剩下的问题你可以访问这个。实际上,你必须通过这个链接。Lars对此做了很好的解释。Tariq关于使用HFileSystem为客户端抽象出接口的观点是正确的,但是关于文件如何实际写入HDFS数据节点的更好的解释可以在这个

这是通过HDFS API实现的吗?如果是这种情况,数据局部性是如何实现的[假设区域服务器和同一系统上的Datanode],即NameNode将根据其统计信息分配Datanode以存储数据

是的。HBase使用
HFileSystem
(文件系统对象的封装)来访问数据。更多信息,请参阅


剩下的问题你可以访问这个。实际上,你必须通过这个链接。Lars对此做了很好的解释。

Tariq关于使用HFileSystem为客户端抽象出接口的观点是正确的,但是关于文件如何实际写入HDFS数据节点的更好的解释可以在这个链接上找到

简而言之,对于要维护的数据位置,客户机联系Zookeeper集群以查找特定行的根区域(基本上是hotname)的位置。然后,它查询接收到的主机名以查找承载.META的服务器。桌子然后,它继续查询表,找出哪个服务器拥有它需要的行,客户端缓存根和.META的位置。表及其所需行的位置

为了将HFile写入HDFS,客户机请求在HTable上进行PUT,HRegionServer将其传递给HRegion实例,然后该实例将其存储在MemStore中(如果未设置write-ahead标志)。当MemStore已满时,它会刷新到DataNodes