天天看點

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

本節書摘來自華章計算機《hadoop與大資料挖掘》一書中的第2章,第2.3節,作者 張良均 樊哲 位文超 劉名軍 許國傑 周龍 焦正升,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

一般操作hadoop叢集都是使用相關的hadoop指令,比如檔案上傳、下載下傳、删除,檔案夾建立、删除、拷貝等;又或者送出mapreduce任務并執行、檢視mapreduce任務執行狀态等。那麼hadoop叢集包含的相關指令有哪些呢?

大多數hadoop叢集的相關指令類别如表2-3所示。

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令
《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令
《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

下面針對每種叢集指令,介紹其中常用的指令,為後面的操作打下基礎。

在講解這個指令前,先對hdfs dfs、hadoop fs、hadoop dfs這3個指令進行區分。

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

該指令的操作在代碼清單2-18中列出。

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令
《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令
《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

其中斜體加粗的指令是比較常用的,一般可以根據指令名稱推斷出該指令的功能及用法。同時,也可以使用-usage指令檢視某個具體名,如代碼清單2-19所示。

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

這裡,針對常用的指令做簡單介紹,如表2-4所示。

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

在了解了一些hadoop hdfs相關指令後,即可進行實驗,加深對該類指令的認識。

實驗步驟如下:

1)root賬号登入master機器終端;

2)上傳/root/anaconda-ks.cfg 檔案到hdfs的/user/root/目錄下;

3)複制或移動hdfs中/user/root/anaconda-ks.cfg 到/user/root/tmp/目錄下;

4)下載下傳hdfs中的/user/root/tmp/anaconda-ks.cfg 檔案到linux /tmp目錄下;

5)删除/user/root/tmp目錄。

思考:

1)如果使用的不是root賬号登入,那麼可以操作嗎?如何操作?

2)删除/user/root/tmp目錄可以使用哪些指令?不同指令有什麼差別?

mapreduce常用指令就是job相關指令,該指令相關參數及描述如代碼清單2-20所示。

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

其中比較常用的描述如下。

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

yarn常用指令就是yarn jar指令,即送出一個mapreduce任務的指令。使用該指令可以直接運作一個mapreduce任務。該指令描述如代碼清單2-21所示。

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

從上面的描述中可以看出,其實調用yarn jar指令還是比較簡單的,隻需要給出要執行的jar檔案路徑、可選的主類,以及主類對應的輸入參數即可。

1)上傳/root/anaconda-ks.cfg檔案到hdfs檔案系統/user/root目錄;

2)使用yarn jar的方式送出任務,其中,

《Hadoop與大資料挖掘》——2.3 Hadoop叢集指令

3)檢視輸出運作結果;

4)使用mapred job指令檢視任務狀态及對應日志輸出;

5)再次執行任務,檢視輸出資訊;

6)産生一個大資料檔案,上傳到hdfs,使用該大資料檔案執行單詞計數mapreduce任務,在執行到一半後,使用mapred job的kill指令,殺死該任務,檢視相關輸出資訊。

1)執行第5步的時候會報錯嗎?報什麼錯?怎麼解決?

2)可以在hadoop ide中直接送出job嗎?如果可以怎麼做?如果不可以,為什麼?