我是Hbase的新手,我发现Hbase会将所有操作写入WAL和memstore。我想知道为什么Hbase需要WAL?每次我放入或删除数据时,Hbase都必须向WAL写入数据,为什么不在数据文件中操作?为什么Hbase需要WAL?
0
A
回答
0
HBase的已经是其own ACID semantics
:http://hbase.apache.org/acid-semantics.html
它需要一个WAL,以便它可以在RegionServer的失效的情况下重放编辑。 WAL扮演重要角色提供耐久性保证。
WAL是可选的。在HBase写入期间可以禁用WAL。如果它被禁用,你会看到一些性能改进。但是,可能会出现一些集群故障/灾难情况,您可能会丢失一些数据。所以,它的取舍取决于你的用例。
0
如果RegionServer crashesh没有WAL,那么我们可以从WAL中恢复编辑,在每个MemStore刷新并写入新的StoreFiles之前,RegionServer发生故障时可能会丢失数据。 你可以找到更多的信息here
相关问题
- 1. 为什么HBase需要为每个值存储列族?
- 2. HBase中的WAL文件
- 3. HBase中的WAL文件
- 4. 更改HBase WAL位置
- 5. 为什么需要
- 6. 为什么需要“{} \”?
- 7. 如何关闭WAL在HBase的,
- 8. HBase mapReduce TableOutputFormat如何使用Flush和WAL
- 9. 在Hbase中使用WAL进行恢复
- 10. 为什么需要copy_to/from_user?
- 11. 为什么Grails需要Xerces?
- 12. 为什么我需要“&”?
- 13. 为什么需要Server.HtmlEncode?
- 14. 为什么需要$ = jQuery
- 15. 为什么//需要的/
- 16. 为什么这需要malloc'd?
- 17. 为什么RVM需要YAML?
- 18. 为什么mybatis需要@Param?
- 19. 为什么需要DevKit
- 20. 为什么HttpClient需要httpasyncclient?
- 21. 为什么需要NotificationCompat?
- 22. 为什么需要session_ destroy()?
- 23. 为什么需要光标?
- 24. 为什么需要isLargeArc?
- 25. 为什么PayPal需要DoExpressCheckoutPayment?
- 26. 为什么android需要jvm
- 27. 为什么initWithCoder需要self.property?
- 28. 为什么scanf需要&?
- 29. 为什么Apache需要SSLCertificateKeyFile?
- 30. 为什么active_support需要sinatra
与其他数据库相同的原因,耐用性。 WAL文件可以在中断的情况下重播。 –
但是Hbase不支持ACID和事务。我认为它不存在耐久性 – modkzs
行级突变是原子性的。 –