您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么管理Hadoop”,在日常操作中,相信很多人在怎么管理Hadoop問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么管理Hadoop”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
均衡器程序是一個hadoop守護進程,它將塊從忙碌的datanode移到相對空閑的datanode,從而重新分配塊。
在hdfs-site.xml中的dfs.balance.bandwidthPerSec屬性指定均衡器在調整集群時,不同節點之間復制數據的帶寬大小MB/s。
均衡器堅持塊復本放置策略,將復本分散到不同機架,以降低數據損壞率。
它不斷移動塊,直到集群達到均衡,即每個datanode的使用率(該節點上以使用的空間與空間容量之間的比例)和集群的使用率(集群中已使用的空間與集群的空間容量之間的比率)非常接近,差距不超過給定的閾值。
它不斷移動塊,直到集群達到均衡,即每個datanode的使用率(該節點上以使用的空間與空間容量之間的比例)和集群的使用率(集群中已使用的空間與集群的空間容量之間的比率)非常接近,差距不超過給定的閾值。
可調用下面指令啟動均衡器:
% start-balancer.sh
-threshold參數指定閾值(百分比格式),以判定集群是否均衡。
這個標記是可選的,如果不使用,默認閾值是10%。
在任何時刻,集群中都只運行一個均衡器。
均衡器會一直運行,直到在集群變均衡;之后,均衡器無法移動任何塊,或與namenode失去聯系。
6、均衡器在不同節點之間復制數據的帶寬由哪個屬性指定?
為了降低集群負荷、避免干擾其他用戶,均衡器被設計為在后臺運行。
在不同節點之間復制數據的帶寬也是受限的。
默認值是很小的1MB/s,可以通過hdfs-site.xml文件中的dfs.balance.bandwidthPerSec屬性指定(單位是字節)。
1)、配置hdfs-site.xml,指向namenode;
2)、配置mapred-site.xml,指向jobtracker;
3)、啟動datanode和jobtracker守護進程;
注意:最好指定一些經過審核的節點,新節點包含在其中。(????)
被允許連接到namenode的所有datanode放在一個文件中,文件名稱由dfs.hosts屬性指定
該文件放在namenode的本地文件系統中,每行對應一個datanode的網絡地址(由datanode報告——可以通過namenode的網頁查看?????)。
如果需要為一個datanode指定多個網絡地址,可將多個網絡地址放在一行,由空格隔開。
被允許連接到jobtracker的所有tasktracker也在同一個文件中指定,由mapred.hosts屬性指定
通常情況下,由于集群的節點同時運行datanode和tasktracker守護進程,dfs.hosts和mapred.hosts會同時指向一個文件,即include文件。
1)、將新節點的網絡地址添加到include中。
2)、運行以下指令,更新namenode的經過審核的一系列datanode集合。
% hadoop dfsadmin -refreshNodes
3)、以新節點更新slaves文件。
這樣的話,Hadoop控制腳本會將新節點包括在未來操作之中。
4、啟動新的datanode。
5、重啟MapReduce集群。
6、檢查新的datanode和tasktracker是否都出現在網頁界面中。
HDFS能夠容忍datanode故障,但這不意味著允許隨意終止datanode。
以三復本策略為例,如果同時關閉不同機架上的三個datanode,丟失數據的概率會非常高。
Hadoop的tasktracker也可容忍故障的發生。
如果關閉一個正在運行任務的tasktracker,jobtracker會意識到發生故障,并在其它tasktracker上重新調度任務。
對于HDFS來說,文件名稱由dfs.hosts.exclude屬性控制;
對于MapReduce來說,文件名稱由mapred.hosts.execlude屬性控制。
這些文件列出若干未被允許連接到集群的節點。
通常情況下,這兩個屬性指向同一個文件。
1)、將待解除節點的網絡地址添加到exclude文件中。不更新include文件。
2)、重啟MapReduce集群,以終止在待解除節點上運行的tasktracker。
3)、執行以下指令,使用一系列新的審核過的datanode來更新namenode設置:
% hadoop dfsadmin -refreshNodes
4)、轉到網頁界面,查看待解除datanode的管理狀態是否已經變為“Decommission In Progress”。
將這些datanode塊復制到其它datanode中。
5)、當所有datanode的狀態變為“Decommissioned”是,表明所有塊都已經復制完畢。關閉已經解除的節點。
6)、從include文件中移除這些節點,并運行以下命令:
% hadoop dfsadmin -refreshNodes
7)、從slaves文件中移除節點。
dfs.hosts和mapred.hosts屬性供namenode和jobtracker使用,用來決定可以連接哪個工作節點。
Hadoop控制腳本使用slaves文件執行集群范圍的操作,例如重啟集群等。
Hadoop守護進程從不使用slaves文件。(???????????)
用戶將擬退出的若干datanode告知namenode,方可在這些datanode停機之前將塊復制到其它datanode。
僅當tasktracker出現在include文件且不出現在exclude文件中時,才能夠連接到jobtracker。
注意:
如果未指定include文件,或include文件為空,則意味著所有節點均在include文件中。
如果一個datanode同時出現在include和exclude文件中,則該節點可以連接,但是很快會被解除委任。
如果未指定include文件或include文件為空,都意味著包含所有節點。
到此,關于“怎么管理Hadoop”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。