HDFS指令和cloudera manager網頁管理介面筆記(二)_MapReduce莎士比亞txt檔案分析實作

 
從起初尚未上傳莎士比亞 txt檔案





執行HDFS指令上傳莎士比亞 txt檔案
hdfs dfs -put /home/cloudera/shakespeare.txt
如果不指定hdfs端目錄,則使用家目錄

shakespeare.txt 此檔案約為5.18MB




顯示/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-00000          --r表示此檔案為reducer所產生
/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

刪除目錄指令



hdfs dfs -rm -r wordcount_output

成功刪除目錄

是不是都只能用預設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/


也可以明確看到有6個mapper


若跑去cloudera的web ui查看
Clusers -> YARN -> Applications


若中途ctrl + c是不會中斷process執行的,只是停掉client終端顯示更新而已
可以用指令
yarn application -list
陳列出運行中的任務數和進度



Q1.Which of the following is a feature of Hadoop Distributed File System (HDFS)?

Can store up to megabytes of data
If one machine crashes, the data needs to be rebuilt again
Needs permissions to move across multiple platforms
(O)One cluster can be scaled into hundreds of nodes

解析:
HDFS is scalable, that is, one cluster can be scaled into hundreds of nodes.


Q2.What is Yet Another Resource Navigator (YARN)?

Storage layer in Hadoop
(O)Resource Manager
Data processing framework
Data migration tool

解析:
Yet Another Resource Negotiator (YARN) is the resource management layer in Hadoop, responsible 
for managing and allocating resources to applications running on a Hadoop cluster.










留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題