大數據之Hadoop學習(一)利用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

在這裏插入圖片描述
說明已經拷貝進去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章