1. 程式人生 > 實用技巧 >Hadoop進階命令使用介紹

Hadoop進階命令使用介紹

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  > hadoop-hadoop-balancer-hadoop-.log &

節點內各個磁碟的資料平衡:

> hdfs diskbalancer -plan IP -bandwidth  -v > /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  

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。是yarn還是hdfs還是mapreduce遇到的問題,然後官網左側邊欄按分類自己找,暫且用這三類舉例,如果是命令列的動作,啥也別想,command reference點進去,瀏覽器Ctrl + F搜你可能遇到問題的英文單詞,比如上面舉例的動態生效配置,我不知道什麼status,start,但是配置的英文是properties,那我就搜進去看看,結果已經很少了,不信你看下面最後的圖

找到這裡,基本不需要再糾結什麼了,就很快就找到了,這是dfsadmin子命令的所有總覽,不太確定的往下找詳細解釋就行了

很多問題百度,Google是沒有答案的,泛泛來講的話很多問題的表象可能一樣,但是根本原因可能都不盡相同,別人的辦法不一定適合你,我上一篇寫的JetBrains Datagip連線hive的那個小帖子,我千算萬算沒算到驅動版本的導致的,但是單純的看返回的報錯,網際網路鋪天蓋地的一樣的報錯,但是問題的成因根本不同,所以要多嘗試從官方入手,嫌麻煩?你網上看,我的步驟麻煩嗎? 不比你百度一上午來的快???