我是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
行級突變是原子性的。 –