HDFS允許單寫作者多讀者模型。在這個模型中 - 它能否面對數據讀取與作者寫作內容不一致的情況?在執行明確的h-flush操作之前,HDFS不保證數據的可見性,但如果讀取器讀取的數據被寫入器更改,會怎麼樣?它不會是數據不一致性問題嗎?HDFS單寫入器多讀取器模型 - 讀取不一致?
0
A
回答
0
在HDFS中,讀者讀取的數據將被寫入者更改的場景根本不會發生。
正如你所看到的,HDFS支持write once
模型,它不允許修改任何寫入的數據。
因此,一旦調用了FSDataOutputStream.hsync()
,數據將被寫入磁盤,客戶端可以讀取數據,編寫者將無法修改刷新的數據。
修改內容的唯一方法是使用所需更改複製相同的數據。
編輯: -
設計事實HDFS,讓我們儘快塊被刷新出局閱讀正在被複制的文件的最近寫入的塊,大多用於跟蹤進度完成文件寫入操作,避免文件關閉失敗並且還支持命令hadoop fs -tail
。
請參考,
https://issues.apache.org/jira/browse/HADOOP-89
HDFS既保證了Eventual consistency
該文件的塊將橫跨客戶端關閉文件的寫操作後,才分布式系統是一致的。
- 禮貌@ sunrise76
相關問題
- 1. Hadoop寫入/讀取int []從/到HDFS
- 2. HDFS緩衝寫入/讀取操作
- 3. 爲什麼HDFS只寫入一次並多次讀取?
- 4. 多次讀取一個閱讀器
- 5. Hadoop JUnit測試從hdfs寫入/讀取hdfs
- 6. 使用mmap讀取/寫入寄存器
- 7. Sparkr讀寫HDFS
- 8. Redis讀取/寫入
- 9. 共享資源最快的多路讀取器/單寫入器保護 - C++
- 10. 春季批量單線程讀取器和多線程寫入器
- 11. 抓住FastInfoset讀取器和編寫器
- 12. Twitter API:單獨讀取和讀取/寫入令牌
- 13. 從HDFS讀取簡單的Avro文件
- 14. ReadWriteLocks-(不可重入)它如何支持多讀取器獲取讀鎖
- 15. 如何在java中使用緩衝讀取器和緩衝寫入器讀取和寫入文件
- 16. iPhone模擬器 - 寫入文件/讀取問題
- 17. 如何獲取有多少元素數據讀取器讀取?
- 18. 多線程讀取和寫入服務器在c + +
- 19. 從HDFS讀寫HBASE
- 20. HDFS讀寫操作
- 21. 讀取或寫入多進程csv
- 22. 異步讀取/寫入多個文件
- 23. 隔離讀取和寫入多線程
- 24. Java多線程寫入和讀取
- 25. 多線程:讀取/寫入管道
- 26. Python:讀取和寫入多個文件
- 27. C++太多寫入/讀取大小4
- 28. 如何使用Ruby在Hadoop HDFS中寫入/讀取文件?
- 29. Bufferreader和Bufferwriter用於讀取和寫入文件HDFS
- 30. Cloudera Hadoop:在HDFS中讀取/寫入文件
有道理。一種情況是:Writer將寫入512KB,但他刷新讀取器讀取的256KB數據。最終編寫者將寫入512KB,但由於讀者只讀取了256KB的新數據 - 在這種情況下它不會影響讀取一致性嗎?還是我們在這裏遵循最終的一致性模型? – yguw
它遵循最終的一致性 –
@yguw,我編輯了答案。請檢查它是否有幫助。 – sureshsiva