HBase 的 WAL 日志存在意义 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
modkzs
V2EX    程序员

HBase 的 WAL 日志存在意义

  •  
  •   modkzs 2015-09-20 19:30:52 +08:00 3701 次点击
    这是一个创建于 3761 天前的主题,其中的信息可能已经有所发展或是发生改变。

    新手小白刚刚开始学习 Hbase 。昨天了解到 Hbase 在写入时会将数据写入 WAL 和 Memstore ,突然对 WAL 在 Hbase 的存在意义产生了疑问。 Hbase 没有索引和事务,那么 WAL 存在感觉并没有什么用处啊?如果是容灾的话,在写入 WAL 时服务器挂掉照样没法修复啊?这样每次写入数据时都要先进行一次 WAL 的 IO 操作,还不如直接对 Hbase 的数据文件进行 IO 操作。这样大大简化读取和写入的操作流程。 Hbase 引入 WAL 的目的是什么?

    7 条回复    2015-09-24 09:42:53 +08:00
    anexplore
        1
    anexplore  
       2015-09-20 20:10:25 +08:00
    如果 memstroe 中的数据还没 flush ,宕机就丢失了;可以用 wallog 恢复吧
    modkzs
        2
    modkzs  
    OP
       2015-09-21 07:53:00 +08:00
    @anexplore 如果写入 WAL 的时候服务器出问题了,数据还是会丢失吧
    anexplore
        3
    anexplore  
       2015-09-21 09:40:41 +08:00
    @modkzs wal 存储在 hdfs 上,它是一种保险机制,有它丢失数据概率降低。也可以选择关闭写 log
    yuankui
        4
    yuankui  
       2015-09-21 09:42:02 +08:00
    HBase 只有在 WAL 写成功了之后才会对客户端做出承诺说数据谢成功了,如果 WAL 写失败了,客户端会收到报错,这个时候丢数据,是客户端的事,干服务端没关系,可以通过客户端重试解决.

    丢数据是, 承诺了存储好的数据,后来去查不到了,这才叫丢数据.
    modkzs
        5
    modkzs  
    OP
       2015-09-23 12:57:06 +08:00
    @yuankui 如果是这样的话,也可以在写入数据文件之后对客户端承诺写入成功,并不需要 WAL 啊
    anexplore
        6
    anexplore  
       2015-09-24 09:40:16 +08:00
    hbase 写数据是先放在内存里的,到达一定量后才 flush 到存储。如果没 flush 之前,机器挂了,内存中的数据就丢失了。如果写了 WAL 那么其他机器就可以根据 log 恢复数据。
    WAL 是影响性能的,你可以选择关闭 WAL ,你可以选择关闭 WAL ,你可以选择关闭 WAL
    yuankui
        7
    yuankui  
       2015-09-24 09:42:53 +08:00
    先看看书吧.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5196 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:53 PVG 16:53 LAX 00:53 JFK 03:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86