1. 程式人生 > >HDFS的 /路徑介紹+2客戶端命令工具+3命令+4mapreduce單詞解析

HDFS的 /路徑介紹+2客戶端命令工具+3命令+4mapreduce單詞解析

/路徑介紹

 

對應路徑

/home/hadoop/apps/hadoop-2.6.4/tmp/dfs/data/current/BP-271701141-192.168.232.128-1546395882610/current/finalized

對應配置

 

2客戶端命令工具

目錄

/home/hadoop/apps/hadoop-2.6.4/bin

 

3命令

put                

功能:等同於copyFromLocal

示例:hadoop  fs  -put   a.txt   /

[[email protected] ~]# echo aabbccdd >a.txt
[[email protected] ~]# hadoop fs -put a.txt /

-ls                  

功能:顯示目錄資訊

示例: hadoop fs -ls hdfs://mini-yum:9000/

備註:這些引數中,所有的hdfs路徑都可以簡寫

-->hadoop fs -ls /   等同於上一條命令的效果

[[email protected] ~]# hadoop fs -ls hdfs://mini-yum:9000/
Found 1 items
-rw-r--r--   2 root supergroup          9 2019-01-06 20:33 hdfs://mini-yum:9000/a.txt
[

[email protected] ~]# hadoop fs -ls / 
Found 1 items
-rw-r--r--   2 root supergroup          9 2019-01-06 20:33 /a.txt

擴充套件:檔案具體存在哪?(我配置的副本是2,應該有2個datanode有儲存)

本身儲存的(mini4操作的)

副本的

.meta是資料描述

 blk_1073741825是什麼呢?

其實裡面就是我們儲存的資料(因為沒有128M,所以沒切)

[[email protected] subdir0]# cat blk_1073741825
aabbccdd

為了試驗,我們put 一個大於128M的檔案 

檢視檔案怎麼被切的(檔案操作128M就被拆分,如下圖,所以如果我們把下面2個檔案加起來就是一個完整的檔案)

那麼對應副本又是哪樣呢(儲存mini4的副本)

 

-cat  

功能:顯示檔案內容  

示例:hadoop fs -cat  /a.txt

[[email protected] ~]# hadoop fs -cat /a.txt
aabbccdd

-mkdir              

功能:在hdfs上建立目錄

示例:hadoop fs  -mkdir  -p  /aaa

 

-moveFromLocal            

功能:從本地剪下貼上到hdfs

示例:hadoop fs -moveFromLocal t1 /aaa

[[email protected] ~]# hadoop fs -moveFromLocal t1 /aaa

 

-moveToLocal              

功能:從hdfs剪下貼上到本地

示例:hadoop  fs  - moveToLocal   /aaa/t1  /test

可能會出現下面錯誤(好像是低版本的bug)

[[email protected] hadoop]# hadoop fs -moveToLocal /aaa   /home/hadoop
moveToLocal: Option '-moveToLocal' is not implemented yet.

 

--appendToFile  

功能:追加一個檔案到已經存在的檔案末尾

示例:hadoop  fs  -appendToFile  ./b.txt    hdfs://mini-yum:9000/a.txt

可以簡寫為:

hadoop fs -appendToFile ./b.txt    /a.txt

[[email protected] hadoop]# hadoop fs -appendToFile ./b.txt /a.txt
[[email protected] hadoop]# hadoop fs -cat  /a.txt
aabbccdd
this is b file
[[email protected] hadoop]# 

-tail                 

功能:顯示一個檔案的末尾

示例:hadoop fs -tail   /a.txt

[[email protected] hadoop]# hadoop fs -tail /a.txt
aabbccdd
this is b file

-text                  

功能:以字元形式列印一個檔案的內容

示例:hadoop fs -text   /a.txt

[[email protected] hadoop]# hadoop fs -text /a.txt
aabbccdd
this is b file

-chgrp

-chmod

-chown

功能:linux檔案系統中的用法一樣,對檔案所屬許可權

示例:

hadoop fs -chmod 777 /a.txt

[[email protected] hadoop]# hadoop fs -chmod 777 /a.txt

 

-copyFromLocal    

功能:從本地檔案系統中拷貝檔案到hdfs路徑去

示例:hadoop fs -copyFromLocal b.txt /aaa

[[email protected] hadoop]# hadoop fs -copyFromLocal b.txt /aaa

-copyToLocal      

功能:從hdfs拷貝到本地

示例:hadoop fs -copyToLocal /aaa/t1

[[email protected] hadoop]# hadoop fs -copyToLocal /aaa/t1
[[email protected] hadoop]# ll
總用量 52
drwxr-xr-x.  3 root   root    4096 1月   2 10:23 apps
-rw-r--r--.  1 root   root      15 1月   4 11:10 b.txt
-rw-r--r--.  1 root   root       6 1月   4 11:19 t1
drwxr-xr-x. 12 hadoop hadoop  4096 12月  5 09:08 zookeeper
-rw-rw-r--.  1 hadoop hadoop 31049 12月  7 08:27 zookeeper.out

 下面的命令我就沒有操作了

-cp              

功能:從hdfs的一個路徑拷貝hdfs的另一個路徑

示例: hadoop  fs  -cp  /aaa/jdk.tar.gz  /bbb/jdk.tar.gz.2

  

-mv                     

功能:在hdfs目錄中移動檔案

示例: hadoop  fs  -mv  /aaa/jdk.tar.gz  /

 

-get              

功能:等同於copyToLocal,就是從hdfs下載檔案到本地

示例:hadoop fs -get  /aaa/jdk.tar.gz

-getmerge             

功能:合併下載多個檔案

示例:比如hdfs的目錄 /aaa/下有多個檔案:log.1, log.2,log.3,...

hadoop fs -getmerge /aaa/log.* ./log.sum

 

-rm                

功能:刪除檔案或資料夾

示例:hadoop fs -rm -r /aaa/bbb/

 

-rmdir                 

功能:刪除空目錄

示例:hadoop  fs  -rmdir   /aaa/bbb/ccc

 

-df               

功能:統計檔案系統的可用空間資訊

示例:hadoop  fs  -df  -h  /

 

-du

功能:統計資料夾的大小資訊

示例:

hadoop  fs  -du  -s  -h /aaa/*

 

-count         

功能:統計一個指定目錄下的檔案節點數量

示例:hadoop fs -count /aaa/

 

-setrep                

功能:設定hdfs中檔案的副本數量

示例:hadoop fs -setrep 3 /aaa/jdk.tar.gz

<這裡設定的副本數只是記錄在namenode的元資料中,是否真的會有這麼多副本,還得看datanode的數量>

 

 

4mapreduce單詞解析

[[email protected] ~]# cd /home/hadoop/apps/hadoop-2.6.4/share/hadoop/mapreduce

 

[[email protected] mapreduce]# hadoop jar hadoop-mapreduce-examples-2.6.4.jar  wordcount /a.txt /a_out.txt

報錯

原因是YARN沒啟動

啟動後就沒問題了

[[email protected] mapreduce]# start-yarn.sh

重新執行命令(正常截圖)

測試結果(資料有點少)

[[email protected] mapreduce]# hadoop fs -ls  /a_out.txt
Found 2 items
-rw-r--r--   2 root supergroup          0 2019-01-06 21:23 /a_out.txt/_SUCCESS
-rw-r--r--   2 root supergroup         11 2019-01-06 21:23 /a_out.txt/part-r-0000

[[email protected] mapreduce]# hadoop fs -cat  /a_out.txt/part-r-00000
aabbccdd    1

寫一個很多資料的再測試

[[email protected] mapreduce]# hadoop fs -ls  /b_out
Found 2 items
-rw-r--r--   2 root supergroup          0 2019-01-06 21:39 /b_out/_SUCCESS
-rw-r--r--   2 root supergroup         49 2019-01-06 21:39 /b_out/part-r-00000
[[email protected] mapreduce]# hadoop fs -cat  /b_out/part-r-00000
aa    2
aabbccdd    1
bb    2
lisi    1
wangwu    1
zhangshan    1