HDFS指令和cloudera manager網頁管理介面筆記(二)_MapReduce莎士比亞txt檔案分析實作
從起初尚未上傳莎士比亞 txt檔案
執行HDFS指令上傳莎士比亞 txt檔案
hdfs dfs -put /home/cloudera/shakespeare.txt
如果不指定hdfs端目錄,則使用家目錄
顯示/user/cloudera/shakespeare.txt由那些hdfs區塊組成
檢查shakespeare.txt的區塊個數
用指令
hdfs fsck -blocks -files /user/cloudera/shakespeare.txt
hdfs fsck /user/cloudera/shakespeare.txt -files -blocks
使用Cloudera Manager -> HDFS -> NameNode WebUI
WordCout範例
(運行前要確保要被計數的檔案必須存在於HDFS,輸出目錄不能事先存在於HDFS。)
ls -l /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
yarn jar /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
hdfs dfs -ls /user/cloudera/wordcount_output/
- 來源檔案(位在HDFS,必須已經存在) wordcount的輸出目錄(位在HDFS,但不能已經存在)
- wordcount_output此檔案位於執行yarn所在機器,不需要事先上傳到HDFS,運行時由resource manager將程式碼傳送到所有執行此操作的Yarn Container中
yarn jar /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /user/cloudera/shakespeare.txt /user/cloudera/wordcount_output/
/user/cloudera/wordcount_output/part-r-00001 --檔案個數表示reduce階段有幾個reducer
檢視執行結果
hdfs dfs -tail /user/cloudera/wordcount_output/part-r-00001
使用getmerge選項將HDFS目錄的內容變成一個檔案後下載到本地端
hdfs dfs -getmerge wordcount_output shakespeare_wordcount.csv
head shakespeare_wordcount.csv
刪除目錄指令
是不是都只能用預設128M block size呢?
默認捨麼參數都不打情況下確實都是128MB,若想更改可透過指令參數-D去指定
從client端指定HDFS區塊大小(-D dfs.block.size=1M)
hdfs dfs -D dfs.block.size=1M -put /home/cloudera/shakespeare.txt /user/cloudera/shakespeare_1M.txt
hdfs dfs -ls
在 HDFS 中,檔案被切分成區塊(block)來儲存,每個區塊的大小取決於 HDFS 的區塊大小設定。當檔案超過區塊大小時,HDFS 會自動將檔案分割成多個區塊,每個區塊的大小等於設定的區塊大小,最後一個區塊會儲存檔案剩下的資料。
因此:
5.18 MB 檔案在 1 MB 的區塊大小下,會被分成 6 個區塊。
前 5 個區塊:每個區塊大小為 1 MB。
第 6 個區塊:儲存剩下的 0.18 MB(約 190 KB)。
顯示HDFS檔案的區塊數量指令
hdfs fsck /user/cloudera/shakespeare_1M.txt -files -blocks
查看檔案在 HDFS 中的區塊分佈情況
會列出每個區塊的大小、分佈位置等詳細資訊,進一步確認檔案被切分的狀況。
hdfs fsck /user/cloudera/shakespeare_1M.txt -blocks -locations
此時會發現有6個split,也會感覺跑比較久。
yarn jar /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /user/cloudera/shakespeare_1M.txt /user/cloudera/wordcount_output/
若跑去cloudera的web ui查看
Clusers -> YARN -> Applications
若中途ctrl + c是不會中斷process執行的,只是停掉client終端顯示更新而已
可以用指令
yarn application -list
陳列出運行中的任務數和進度
留言
張貼留言