hadoop生產環境的使用是很複雜的,有些公司是CDH或者Ambari等管理工具運維的,有些是原生的叢集俗稱裸奔,前者優缺點是運維,檢視監控等容易,對於底層理解不友好;裸奔叢集反之,裸奔叢集的很多東西都需要定製和自己開發,比如監控用zabbix,告警用企業微信,節點的異構嚴重的,需要二次開發配置檔案分發等等避免同步配置時配置覆蓋(舉例:node1是2塊磁碟,node2是三塊,如果直接同步配置檔案則要麼node1多了一個目錄,要麼node2的配置少了一塊盤。若覆蓋的磁碟多了,就會導致叢集丟塊)
先上官網:Apache Hadoop 3.1.2
叢集間資料平衡:
> nohup hdfs balancer -D "dfs.balancer.movedWinWidth=300000000" -D "dfs.datanode.balance.bandwidthPerSec=2000m" -threshold 1 > hadoop-hadoop-balancer-hadoop-0018.log &
節點內各個磁碟的資料平衡:
> hdfs diskbalancer -plan IP -bandwidth 1000 -v 2> /dev/null | egrep ^/ | xargs hdfs diskbalancer -execute
接上,檢視磁碟平衡情況/進度:
> hdfs diskbalancer -query IP
YARN資源置空(這裡多說一下,資源置空我們在生產環境是有些情況需要把這個node下線,但是此時此刻正有任務在執行,資源置空之後,UI上面會顯示這個資源是負值,等正在執行的任務執行完成之後就不會再提交到這個node上了,就可以下線了)
- 注意這個PORT是UI頁面上的Node Address,不是Node HTTP Address
> yarn rmadmin -updateNodeResource IP:PORT 0 0
HDFS高可用Namenode主從切換:
- nn1,nn2這兩個是你叢集配置檔案配置高可用時指定的別名,需要用你自己的
> hdfs haadmin -failover nn2 nn1
HDFS退出安全模式
> hadoop dfsadmin -safemode leave
HDFS動態生效datanode/namenode配置:
- status:檢視動態生效配置狀態
- start:執行動態生效配置動作
- properties:檢視修改了哪些配置與正在執行的不一樣
> hdfs dfsadmin -reconfig datanode IP:PORT status|start|properties
簡單就先寫這麼多,後面遇到了在更新。這篇不是教大家這些命令怎麼用,怎麼背,是教大家遇到問題怎麼解決,上面我自己的定義是水貼,後面才是乾貨
往下看!
官網連結我貼在開頭了,點進去在往下看我寫的,看我圈中紅圈的位置
首先你遇到一個問題你要清楚這是哪一類的問題,而且一定要多看官網,熟悉官網對於問題和用法的分類,上圖我標註的,1,2,3,4步。因為我清楚我的問題是hdfs的問題,動態生效就一定需要命令列操作,就點進去command reference,然後是datanode修改配置的問題,配置是管理員操作的不是客戶端,所以定位到Administration Commands,所以很快就定位到子命令dfsadmin,然後啥也別想點進去,瀏覽器Ctrl + F搜你可能遇到問題的英文單詞,比如上面舉例的動態生效配置,我不知道什麼status,start,但是配置的英文是properties,那我就搜進去看看,結果已經很少了,不信你看下面最後的圖
找到這裡,基本不需要再糾結什麼了,就很快就找到了,這是dfsadmin子命令的所有總覽,不太確定的往下找詳細解釋就行了
還有人會說我不知道搜properties,那你就通篇去看,退一萬步講,就算你沒找到答案,但是你也已經發現了一個方法不是嗎,技術本來就是持續鑽研且不一定能百分之百收到正反饋的一件事情,積累最重要,掌握這個方法你就不需要背下來這些命令,就算你的領導問題,面試官考你,不會糾結你命令怎麼寫,就看你有沒有解決問題的方法,技術這塊,死記硬背是行不通的。
很多問題百度,Google是沒有答案的,泛泛來講的話很多問題的表象可能一樣,但是根本原因可能都不盡相同,別人的辦法不一定適合你,我上一篇寫的JetBrains Datagip連線hive的那個小帖子,我千算萬算沒算到驅動版本的導致的,但是單純的看返回的報錯,網際網路鋪天蓋地的一樣的報錯,但是問題的成因根本不同,所以要多嘗試從官方入手,嫌麻煩?你網上看,我的步驟麻煩嗎? 不比你百度一上午來的快???
————————————————
如果這個帖子對你有用,記得點一下推薦咯