任何人都可以詳細分析namenode的內存消耗嗎?還是有一些參考資料?無法在網絡中找到材料。謝謝!hadoop的namenode的內存消耗?
回答
我想內存消耗將取決於您的HDFS設置,因此取決於HDFS的整體大小,並且與塊大小有關。 來自Hadoop NameNode wiki:
使用一個很好的RAM服務器。您擁有的RAM越多,文件系統越大,或者塊大小越小。
從https://twiki.opensciencegrid.org/bin/view/Documentation/HadoopUnderstanding:
的Namenode:Hadoop的的核心元數據服務器。這是系統中最關鍵的部分,只能有其中之一。這將同時存儲文件系統映像和文件系統日誌。 namenode保留所有的文件系統佈局信息(文件,塊,目錄,權限等)和塊位置。文件系統佈局保存在磁盤上,塊位置只保存在內存中。當客戶端打開一個文件時,namenode告訴客戶端文件中所有塊的位置;那麼客戶端不再需要與namenode進行數據傳輸通信。
同一站點建議如下:
的Namenode:建議的RAM至少8GB(最小是2GB RAM),優選16GB以上。一個粗略的經驗法則是每100TB的原始磁盤空間1GB;實際需求約爲每百萬個對象1GB(文件,目錄和塊)。 CPU要求是任何現代多核服務器CPU。通常,namenode只會使用你的CPU的2-5%。由於這是單點故障,最重要的要求是可靠的硬件而不是高性能的硬件。我們建議使用冗餘電源和至少2個硬盤驅動器的節點。
內存使用的更詳細的分析,檢查此鏈接了: https://issues.apache.org/jira/browse/HADOOP-1687
您也可能會發現這個問題有意思:Hadoop namenode memory usage
有一些技術限制到的NameNode(NN) ,並面臨任何一個將限制你的可擴展性。
- 記憶。 NN每塊消耗大約150個字節。從這裏你可以計算出你的數據需要多少內存。有很好的討論:Namenode file quantity limit。
- IO。對於文件系統的每次更改(如創建,刪除塊等),NN都會執行1 IO操作。所以你的本地IO應該足夠了。估計你需要多少是很難的。考慮到我們的內存塊數量有限,除非您的羣集非常大,否則您不會聲明此限制。如果是 - 考慮SSD。
- CPU。 Namenode有相當多的負載跟蹤所有數據節點上所有塊的健康狀況。每個datanode每隔一段時間報告其所有塊的狀態。同樣,除非集羣不太大,否則不應該成爲問題。
實施例計算 200節點集羣 24TB /節點 128MB塊大小 複製因子= 3
多少空間需要被?
塊= 200 * 24 * 2^20 /(128 * 3)
〜1200萬塊 〜12000 MB存儲器。
我想我們應該區分每個namenode對象如何使用namenode內存和調整namenode堆的一般建議。
對於第一種情況(消費)AFAIK,每個namenode對象都包含平均150字節的內存。 Namenode對象是文件,塊(不包括複製副本)和目錄。因此,對於一個佔用3個塊的文件,這是4(1個文件和3個塊)x150個字節= 600個字節。
對於名稱節點的建議堆大小的第二種情況,通常建議您保留1GB /百萬個塊。如果你計算這個值(每塊150字節),你會得到150MB的內存消耗。你可以看到這個數字遠低於每百萬塊1GB,但你也應該考慮到文件大小,目錄的數量。
我想這是一個安全的建議。檢查以下兩個鏈接的更廣泛的討論和示例:
Sizing NameNode Heap Memory - Cloudera
- 1. Hadoop DataNode內存消耗和GC行爲
- 2. 內存消耗
- 3. Hadoop namenode內存使用情況
- 4. Hadoop NameNode
- 5. BigDecimal(Java)的內存消耗
- 6. EF的內存消耗
- 7. Android的內存消耗
- 8. Cherrypy中的內存消耗
- 9. 的std :: istream_iterator,內存消耗
- 10. Magick.NET中的內存消耗
- 11. Tomcat的內存消耗
- 12. SQLite的內存消耗?
- 13. java的內存消耗Collection.sort()
- 14. PHP的TeeChart內存消耗
- 15. 什麼消耗Hadoop YARN中的計算機內存?
- 16. HSQLDB內存消耗
- 17. QRegularExpressionMatch內存消耗
- 18. Direct2D內存消耗
- 19. QTreeView內存消耗
- 20. EntityManager內存消耗
- 21. Boost.Flyweight內存消耗
- 22. Luakit內存消耗
- 23. 佔內存消耗
- 24. 沒有HDFS存儲的Hadoop Namenode
- 25. Hadoop的複製是否會佔用NameNode的內存
- 26. Hadoop NameNode Federation
- 27. HADOOP NAMENODE ERROR
- 28. Executin的Hadoop的NameNode -format
- 29. 錯誤:$ Hadoop的NameNode的-format
- 30. 2的NameNode - Hortonworks - Hadoop的