在hadoop mapreduce編程模型中;當我們處理文件時,必須將文件保存在HDFS文件系統中,還是可以將這些文件保存在其他文件系統中,並仍然具有mapreduce編程模型的優點?Hadoop HDFS依賴關係
回答
映射器從InputFormat
的實現中讀取輸入數據。大多數實現從FileInputFormat
下降,從本地機器或HDFS讀取數據。 (默認情況下,數據是從HDFS讀取的,並且mapreduce作業的結果也存儲在HDFS中。)當您希望從替代數據源讀取數據時,您可以編寫自定義InputFormat
,而不是HDFS。
TableInputFormat
將直接從HBase讀取數據記錄,並且DBInputFormat
將訪問關係數據庫中的數據。您也可以想象一個系統,通過網絡在特定端口上將數據流式傳輸到每臺計算機; InputFormat
從端口讀取數據並將其解析爲單個記錄進行映射。
但是,就你而言,你在單個或多個服務器上的ext4文件系統中有數據。爲了在Hadoop中方便地訪問這些數據,您必須首先將其複製到HDFS中。這樣,當文件塊並行處理時,您將從數據局部性中受益。
我強烈建議閱讀關於此主題的tutorial from Yahoo!以獲取詳細信息。爲了收集mapreduce處理的日誌文件,請看Flume。
您可以將文件保存在其他地方,但您會失去數據本地優勢。例如, 。如果您使用的是AWS,則可以將文件存儲在S3上並直接從Map-Reduce代碼,Pig,Hive等訪問它們。
S3是hdfs存儲 – 2013-05-06 18:43:43
@ djc391:S3可以是一個類似HDFS的存儲,其中mapreduce的數據將存儲在HFDS中,或者可以直接從S3 =沒有HDFS讀取。請參閱http://wiki.apache.org/hadoop/AmazonS3。 – harpun 2013-05-06 23:01:23
這是hdfs的「替代品」,因爲您不是使用自己的服務器hdfs集羣,而是使用亞馬遜的hdfs集羣。它沒有使用ONES OWN hdfs。有或沒有HDFS的 – 2013-05-07 05:19:28
爲了使用Apache Haddop,您必須在HDFS中擁有文件,hadoop文件系統。雖然HDFS有不同的抽象類型,比如AWS S3,但它們都在基本級HDFS存儲中。
數據需要在HDFS中,因爲HDFS會將數據沿羣集分發。在映射階段,每個Mapper都會遍歷存儲在其節點中的數據,然後將其發送到爲給定塊運行Reducer代碼的正確節點。
您不能擁有使用HDFS的Hadoop MapReduce。
? – 2013-05-06 21:39:59
- 1. HDFS原子重命名文件系統依賴關係
- 2. Hadoop Streaming - Perl模塊依賴關係
- 3. 使用Hadoop Streaming管理依賴關係?
- 4. hadoop和紗線的Maven依賴關係
- 5. 依賴關係的nuget依賴關係
- 6. 依賴關係
- 7. iMX31依賴關係?
- 8. tools.jar依賴關係
- 9. Jira依賴關係
- 10. Maven依賴關係
- 11. WildFly依賴關係
- 12. Python依賴關係?
- 13. DLL依賴關係
- 14. asyntasks依賴關係
- 15. Maven依賴關係
- 16. Eclipse:Android依賴關係
- 17. 依賴關係Symfony2
- 18. Hudson依賴關係
- 19. flickrj依賴關係
- 20. URLClassloader依賴關係
- 21. automake依賴關係
- 22. pip:安裝依賴的依賴關係
- 23. 依賴的Maven副本依賴關係
- 24. ldd是否也顯示依賴關係的依賴關係?
- 25. 模擬依賴關係的依賴關係
- 26. 連接依賴關係時的循環依賴關係
- 27. Playbook依賴關係與角色依賴關係
- 28. Intellij sbt不會解決依賴關係的依賴關係
- 29. 用browserify-shim實現依賴關係的勻場依賴關係
- 30. PostgreSQL設計依賴關係樹沒有循環依賴關係
你想使用什麼文件系統?像一個MySQL數據庫或東西? – 2013-05-06 18:44:20
我有坐在服務器上的日誌文件;我想使用類型爲ext4的日誌文件 – 2013-05-06 21:43:34
那麼你真正想要訪問的文件是不是通過管道傳送到hdfs目錄?所以更好的問題是如何使用未存儲在HDFS中的文件的MapReduce引擎? – 2013-05-07 05:20:04