A. hadoop常用shell命令怎麼用
一、常用的hadoop命令
1、hadoop的fs命令
#查看hadoop所有的fs命令
1
hadoop fs
#上傳文件(put與FromLocal都是上傳命令)
1
2
hadoop fs -put jdk-7u55-linux-i586.tar.gz hdfs://hucc01:9000/jdk
hadoop fs -FromLocal jdk-7u55-linux-i586.tar.gz hdfs://hucc01:9000/jdk
#下載命令(get與ToLocal都是下載命令)
1
2
hadoop fs -get hdfs://hucc01:9000/jdk jdk1.7
hadoop fs -ToLocal hdfs://hucc01:9000/jdk jdk1.7
#將本地一個或者多個文件追加到hdfs文件中(appendToFile)
1
hadoop fs -appendToFile install.log /words
#查詢hdfs的所有文件(ls)
1
hadoop fs -ls /
#幫助命令(help)
1
hadoop fs -help fs
#查看hdfs文件的內容(cat和text)
1
2
hadoop fs -cat /words
hadoop fs -text /words
#刪除hdfs文件(rm)
1
hadoop fs -rm -r /words
#統計hdfs文件和文件夾的數量(count)
1
hadoop fs -count -r /
#合並hdfs某個文件夾的文件,並且下載到本地(getmerge)
1
hadoop fs -getmerge / merge
#將本地文件剪切到hdfs,相當於對本地文件上傳後再刪除(moveFormLocal)
1
hadoop fs -moveFromLocal words /
#查看當前文件系統的使用狀態(df)
1
hadoop fs -df
二、常用的hdfs命令(這個用的比較多)
用法跟hadoop命令一樣,推薦2.0之後使用hdfs命令
1
hdfs dfs
B. 如何快速從hdfs上檢索需要的文本
A1.該索引叫FsImage, 但沒有對外提供api, 參考 附錄的鏈接1
整個文件系統的名字空間,包括數據塊到文件的映射、文件的屬性等,都存儲在一個稱為FsImage的文件中,這個文件也是放在Namenode所在的本地文件系統上。
A2. FS Shell, 詳細請參考鏈接2
1)hadoop fs -ls
功能跟shell 的 ls 命令相同
2)hadoop fs -lsr
ls命令的遞歸版本。類似於Unix中的ls -R。
如果要實現復雜的查找功能,可以考慮用下述方式
hadoop fs -lsr / | awk/sed/grep .....
C. hadoop中命令經常含有-fs,-dfs,fs和dfs有什麼區別作用是什麼
You can see definitions of the two commands (hadoop fs & hadoop dfs) in
可以看一下hadoop的源代碼
$HADOOP_HOME/bin/hadoop
...elif [ "$COMMAND" = "datanode" ] ; then CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode' HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DATANODE_OPTS"elif [ "$COMMAND" = "fs" ] ; then CLASS=org.apache.hadoop.fs.FsShell HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"elif [ "$COMMAND" = "dfs" ] ; then CLASS=org.apache.hadoop.fs.FsShell HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"elif [ "$COMMAND" = "dfsadmin" ] ; then CLASS=org.apache.hadoop.hdfs.tools.DFSAdmin HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"...
So, they are exactly the same.
所以,發現兩者是完全一樣的功能。
謝謝
D. 何時使用hadoop fs,hadoop dfs與hdfs dfs命令
hadoop hdfs dfs基本操作
本文主要參考:
http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/FileSystemShell.html
根據上面官方文檔的提示我們能夠知道可以通過shell的方式訪問hdfs中的數據,對數據進行操作。那麼首先讓我們看一下hdfs的版本,使用命令hdfs version。
好,下面上貨:
1、查詢
使用命令:
hdfs dfs -ls / 這條執行會列出/目錄下的文件和目錄
hdfs dfs -ls -R /這條會列出/目錄下的左右文件,由於有-R參數,會在文件夾和子文件夾下執行ls操作。
2、添加文件夾
使用命令;
hdfs dfs -mkdir -p /xytest/testdata001/
這里需要注意的是,root用戶是否擁有hdfs 的許可權,如果有,我們可以繼續操作,如果沒有,我們可以直接使用hdfs用戶,默認安裝完cdh後,用戶hdfs擁有所有的許可權。如果對於許可權有不明白的,推薦看一下我的另一篇文章:
http://blog.csdn.net/wild46cat/article/details/69664376
3、增加文件
使用命令:
hdfs dfs -FromLocal ~/123.txt /xytest/testdata001/
4、查看hdfs文件中的內容
使用命令:
hdfs dfs -cat /xytest/testdata001/123.txt
或者,可以把hdfs中的文件到本地
使用命令:
hdfs dfs -ToLocal /xytest/testdata001/123.txt ~/222.txt
5、刪除文件
使用命令:
hdfs dfs -rm -f /xytest/testdata001/123.txt
6、刪除文件夾
使用命令:
hdfs dfs -rm -r /xytest/testdata001
E. 怎麼查看hdfs linux 路徑
可以fdisk -l 看到 但是它本身是自己的文件系統 就是hdfs 你從linux本地是看不到的 想看裡面的文件可以使用如下命令 hadoop fs -ls
F. hdfs怎麼查看目錄路徑
用ls命令, 如果返回一行說明是文件,如果多行則表示目錄
hadoop fs -ls $path | grep $path | wc -l
G. hdfs命令查找文件所在路徑
指令
hadoop fsck /user/hadoop/filename -files -blocks -locations -racks
-files 文件分塊信息,
-blocks 在帶-files參數後才顯示block信息
-locations 在帶-blocks參數後才顯示block塊所在datanode的具體IP位置,
-racks 在帶-files參數後顯示機架位置
注意:此命令只能在namenode里輸入,在datanode里輸入會報錯的
H. 怎麼查看hdfs 某個文件夾的文件塊
這種情況比較復雜!如果文件小於64MB,存儲按該文件的塊大小等於該文件的大小。
讀取時是根據存在namenode上面的映射表來讀取的。
按實際存儲的大小來讀取,不是從硬碟上面讀取的,是從HDFS
上面讀取的。
另外,在文件上傳時,就會根據塊的大小將各個塊分布到各個
datanode節點上面的。如果文件已經上傳,需要修改默認塊的大小,
那麼需要執行一條語句將HDFS上面的原有文件重新分塊並存儲。
I. hadoop怎麼查看本地文件
命令:hadoop fs -ls /
webUI:namenode節點:50070
如果是要看節點上的文件的話,是看不到的,畢竟是一個分布式文件系統,你要看本地文件,你也得知道是在哪個主機上呀