HBase WAL文件和HDFS数据分段

时间:2015-09-24 07:25:46

标签: hadoop hbase hdfs

我如何理解什么是WAL: Write Ahead Log提供一致的放置/删除操作。在进行区域更改之前,会写入所有操作。如果区域服务器出现问题,我们可以从WAL修复信息。

我不明白是如何在HDFS之上实现WAL的?

来自HDFS文档:

  

创建文件的客户端请求未到达NameNode   立即。实际上,最初HDFS客户端缓存文件数据   进入临时本地文件。应用程序写入是透明的   重定向到此临时本地文件。当本地文件   累积超过一个HDFS块大小的数据,客户端联系人   NameNode。 NameNode将文件名插入文件系统   层次结构并为其分配数据块。 NameNode响应   客户端请求具有DataNode的标识和   目的地数据块。然后客户端刷新数据块   指向DataNode的本地临时文件。当文件是   关闭,临时本地文件中剩余的未刷新数据是   转移到DataNode

如果我做了一个小改动并且其内容没有转发给hdfs,那么可以放弃WAL内容吗?

修改: 据我所知: http://hadoop-hbase.blogspot.com.by/2012/05/hbase-hdfs-and-durable-sync.html

我们可以强制hdfs客户端同步数据,而不必等待它等于块大小。

2 个答案:

答案 0 :(得分:0)

您在Hbase中编写的数据将经历以下阶段 放 - > WAL - > memstore - > HFILE。 HFile是存储在HDFS中的实际文件。这就是上面的名称节点和数据节点的用武之地。并且HFile已经过排序。

排序操作在Memstore中完成,在此期间达到某个缓冲区大小后,它会刷新到HFile。

现在为了避免memstore中存在数据丢失,使用了WAL。

您可以获得详细信息here

答案 1 :(得分:0)

您可以查看刷新间隔。这个链接有助于: http://hbase.apache.org/0.94/book/perf.writing.html