利用Shell命令與HDFS進行交互
在學習HDFS編程實踐前,我們需要啓動Hadoop。執行如下命令:
一、啓動Hadoop
cd /usr/local/hadoop
./sbin/start-dfs.sh #啓動hadoop
二、利用Shell命令與HDFS進行交互
終端輸入如下命令,查看fs總共支持了哪些命令
./bin/hadoop fs
在終端輸入如下命令,可以查看具體某個命令的作用
例如:我們查看put命令如何使用,可以輸入如下命令:
./bin/hadoop fs -help put
1.目錄操作
cd /usr/local/hadoop
./bin/hdfs dfs -mkdir -p /user/hadoop
該命令中表示在HDFS中創建一個“/user/hadoop”目錄,“–mkdir”是創建目錄的操作,“-p”表示如果是多級目錄,則父目錄和子目錄一起創建,這裏“/user/hadoop”就是一個多級目錄,因此必須使用參數“-p”,否則會出錯。
列出HDFS上的所有目錄,可以使用如下命令:
./bin/hdfs dfs -ls /
在/user/hadoop/中創建一個二級目錄input
./bin/hdfs dfs -mkdir /user/hadoop/input
HDFS的根目錄下創建一個名稱爲input的目錄,則需要使用如下命令:
./bin/hdfs dfs -mkdir /input
使用rm命令刪除剛剛創建的根目錄下的input目錄
(可以使用rm命令刪除一個目錄,比如,可以使用如下命令刪除剛纔在HDFS中創建的“/input”目錄(不是“/user/hadoop/input”目錄):)
./bin/hdfs dfs –rm –r /input
上面命令中,“-r”參數表示如果刪除“/input”目錄及其子目錄下的所有內容,如果要刪除的一個目錄包含了子目錄,則必須使用“-r”參數,否則會執行失敗。
2.文件操作
創建一個文件my.txt
touch my.txt
在my.txt文件中輸入
Hadoop
Spark
XMU DBLAB
使用如下命令把本地文件系統的“/usr/local/hadoop/my.txt”上傳到HDFS中的當前用戶目錄的input目錄下,也就是上傳到HDFS的“/user/hadoop/input/”目錄下:
./bin/hdfs dfs -put ./my.txt /user/hadoop/input
使用ls命令查看一下文件是否成功上傳到HDFS中,具體如下:
/bin/hdfs dfs -ls /user/hadoop/input
使用如下命令查看HDFS中的my.txt這個文件的內容:
./bin/hdfs dfs -cat /user/hadoop/input/my.txt
下面把HDFS中的my.txt文件下載到本地文件系統中的“/home/weiwei/下載/”這個目錄下
./bin/hdfs dfs -get /user/hadoop/input/my.txt /home/weiwei/下載
使用如下命令,到本地文件系統查看下載下來的文件my.txt:
cd ~
cd 下載
ls
cat my.txt
把HDFS的“/user/hadoop/input/my.txt”文件,拷貝到HDFS的另外一個目錄“/input”中(因爲之前的根目錄下的input目錄刪除了,現在重新創建input目錄)
./bin/hdfs dfs -cp /user/hadoop/input/my.txt /input
查看是否拷貝成功:
./bin/hdfs dfs -ls /input
說明已經拷貝進去。