Apache Hadoop管理的23個技巧
本文由Renata Ghisloti Duarte Souza Gra撰寫。
在這篇文章中,我將分享我在使用Apache Hadoop環境多年後學到的一些技巧。這裡的經驗主要考慮了Apache Hadoop 2.9版本,但它可以肯定地擴充套件到其他類似版本。
這些是構建或使用Hadoop叢集時的注意事項。有些是對Cloudera發行版的考慮。無論如何,希望它有所幫助!
1. 不要將Hadoop用於數百萬個小檔案。它會過載namenode並使其變慢。過載namenode並不困難。始終檢查功能與檔案數量。Hadoop上的檔案通常應該超過100 MB。
2. 必須為namenode中的大約1百萬個檔案提供1 GB的記憶體。
3. 節點通常在5年後失敗。節點故障是H adoop中最常見的問題之一。像facebook和google這樣的大公司應該在一分鐘內出現節點故障。
4. Cloudera Manager上的SQL/">MySQL沒有冗餘。這可能是一個失敗點。
5.資訊:fsimage檔案的合併發生在輔助namenode上。
6.Hadoop可以快取塊以提高效能。預設情況下,它無快取,為0。
7. 您可以設定一個引數,在僅將第一個或第二個資料塊複製到資料節點後,將確認訊息從資料節點發送回namenode,這可能會使寫入資料更快。
8. Hadoop具有機架感知功能:它知道哪個節點連線到“女巫”交換機。實際上,它是配置它的Hadoop管理員。
9. 不時檢查檔案以驗證是否存在任何資料損壞(通常每三週一次)。這是可能的,因為datanodes儲存檔案校驗checksum。
10.日誌檔案預設儲存7天。
11.part-m-000來自mapper,part-m-000來自reducer job。最後的數字
對應於為該作業執行的reducer數量。part-r008有9個reducer(從0開始)。
12.您可以更改mapper和reducers任務的log.level以獲取更多資訊。
13. 設定日誌輸出:mapreduce.reduce.log.level = DEBUG
14. yarn伺服器會檢查Spark做了什麼。localhost:4040還顯示已完成的操作。
15. 檢查namenode fsimage檔案的放置位置非常重要。您可能想要複製此檔案。
16. 對於shuffle階段,儲存到dfs.datanode.du.reserve必須將大量磁碟空間(25%)。這個階段將寫在磁碟上,所以需要有空間!
17. 刪除檔案後,刪除一段時間後,它們會保留在.Trash目錄中。預設時間為1天。
18. 你可以用flume建造一個lamdba架構。您還可以指定是否要將資料放入記憶體或磁碟槽中。
19.關於硬體,工作節點需要更多核心以進行更多處理。主節點不會處理那麼多。
20.對於 namenode,需要更高質量的磁碟和更好的硬體(如raid - raid在工作節點上沒有意義)。
21.經驗法則是:如果要儲存1 TB資料,則必須具有4 TB空間。
Hadoop 應用程式通常不受cpu約束。
22. 虛擬化可能會為您帶來一些好處(更易於管理),但卻會影響效能。通常它會帶來5%到30%的開銷。
23. Hadoop不支援ipv6。你可以禁用ipv6。 您還可以 在群集內禁用selinux。兩者都給了開銷。
24. 初始叢集的大小約為6個節點。
25. 有時,當群集太滿時,您可能必須刪除一個小檔案才能刪除更大的檔案。
就這些乾貨了!