大数据基础系列 5:Hadoop 实验——熟悉常用的 HDFS 目录操作和文件操作
文章目錄
- 前言
- 一、實(shí)驗(yàn)?zāi)康?/li>
- 二、實(shí)驗(yàn)平臺(tái)
- 三、實(shí)驗(yàn)內(nèi)容和要求
- 3.1、HDFS 目錄操作
- 3.1.1、創(chuàng)建用戶目錄
- 3.1.2、顯示 HDFS 中與當(dāng)前用戶對(duì)應(yīng)的目錄內(nèi)容
- 3.1.3、列出 HDFS 上的所有目錄
- 3.1.4、用戶目錄下創(chuàng)建一個(gè) input 目錄
- 3.1.5、根目錄下創(chuàng)建 input 的目錄
- 3.1.6、刪除子目錄
- 3.2、HDFS 文件操作
- 3.2.1、向 HDFS 中上傳任意文本文件
- 3.2.2、從 HDFS 中下載指定文件
- 3.2.3、輸出 HDFS 指定文件到終端中
- 3.2.4、顯示 HDFS 中指定的文件信息
- 3.2.5、輸出 HDFS 指定目錄下文件信息
- 3.2.6、指定路徑創(chuàng)建和刪除文件
- 3.2.7、指定路徑創(chuàng)建和刪除目錄
- 3.2.8、向 HDFS 中指定的文件追加內(nèi)容
- 3.2.9、刪除 HDFS 中指定的文件
- 3.2.10、刪除 HDFS 中指定的目錄
- 3.2.11、將文件從源路徑移動(dòng)到目的路徑
- 總結(jié)
前言
本篇文章《大數(shù)據(jù)基礎(chǔ)系列 5:Hadoop 實(shí)驗(yàn)——熟悉常用的 HDFS 目錄操作和文件操作》是完全針對(duì) HDFS 文件系統(tǒng)的,目的即理解 HDFS 在 Hadoop 體系結(jié)構(gòu)中的角色,熟練使用 HDFS 操作常用的 Shell 命令,熟悉 HDFS 操作常用的 Java API。對(duì)大數(shù)據(jù)系列感興趣的同學(xué)可以移步本人大數(shù)據(jù)專欄查看更多內(nèi)容。一、實(shí)驗(yàn)?zāi)康?/h1>
- 理解 HDFS 在 Hadoop 體系結(jié)構(gòu)中的角色;
- 熟練使用 HDFS 操作常用的 Shell 命令;
- 熟悉 HDFS 操作常用的 Java API。
二、實(shí)驗(yàn)平臺(tái)
- 操作系統(tǒng):Linux
- Hadoop版本:Hadoop-3.2.1
- JDK版本:java-8-openjdk-amd64
- Java IDE:Eclipse
三、實(shí)驗(yàn)內(nèi)容和要求
3.1、HDFS 目錄操作
Hadoop 系統(tǒng)安裝好之后,第一次使用 HDFS 時(shí),在初始化并啟動(dòng)之后,首先需要在 HDFS 中創(chuàng)建用戶目錄。
3.1.1、創(chuàng)建用戶目錄
本次實(shí)驗(yàn)全部采用 bailu 用戶登錄 Linux 系統(tǒng),故在 HDFS 中為 bailu 用戶創(chuàng)建用戶目錄,命令如下:
cd /usr/local/hadoop/hadoop-3.2.1 ./bin/hdfs dfs -mkdir -p /user/bailu具體如下圖所示:
說明:該命令表示在 HDFS 中創(chuàng)建一個(gè) /user/bailu 的目錄。
- -mkdir 是創(chuàng)建目錄的操作。
- -p 表示如果是多級(jí)目錄,則父目錄和子目錄一起創(chuàng)建。
注意:這里 /user/bailu 就是一個(gè)多級(jí)目錄,因此必須使用參數(shù) -p,否則會(huì)出錯(cuò)。
3.1.2、顯示 HDFS 中與當(dāng)前用戶對(duì)應(yīng)的目錄內(nèi)容
/user/bailu 目錄就成為 bailu 用戶對(duì)應(yīng)的用戶目錄。
我們可以使用如下命令顯示 HDFS 中與當(dāng)前 bailu 對(duì)應(yīng)的用戶目錄下的內(nèi)容:
./bin/hdfs dfs -ls .說明:
- -ls 表示列出 HDFS 某個(gè)目錄下的所有內(nèi)容。
- . 表示 HDFS 中當(dāng)前用戶目錄,也就是 /user/bailu 目錄。
等價(jià)于:
./bin/hdfs dfs -ls /user/bailu3.1.3、列出 HDFS 上的所有目錄
如果要列出 HDFS 上的所有目錄,可以使用如下命令:
./bin/hdfs dfs -ls3.1.4、用戶目錄下創(chuàng)建一個(gè) input 目錄
在 bailu 用戶下創(chuàng)建一個(gè)input目錄,命令如下:
./bin/hdfs dfs -mkdir input具體如下圖所示:
說明:我們?cè)趧?chuàng)建 input 目錄時(shí),采用了相對(duì)路徑形式,實(shí)際上 input 目錄創(chuàng)建成功后,它在 HDFS 中的完整路徑是 /user/bailu/input。
3.1.5、根目錄下創(chuàng)建 input 的目錄
如果要在 HDFS 的根目錄下創(chuàng)建一個(gè)名為 input 的目錄,則需要以下命令:
./bin/hdfs dfs -mkdir /input3.1.6、刪除子目錄
可以使用 rm 命令刪除剛才在 HDFS 中創(chuàng)建的 /input 目錄(不是 /user/bailu/input 目錄):
./bin/hdfs dfs -rm -r /input說明:-r 參數(shù)表示如果刪除 /input 目錄及其子目錄下的所有內(nèi)容,如果要?jiǎng)h除的目錄包含了子目錄,則必須使用 -r 參數(shù),否則會(huì)執(zhí)行失敗。
3.2、HDFS 文件操作
首先使用 gedit 編輯器,在本地 Linux 文件系統(tǒng)的 /home/bailu/ 目錄下創(chuàng)建一個(gè)文件 myLocalFile.txt,里面隨意輸入一些單詞,具體如下圖所示:
3.2.1、向 HDFS 中上傳任意文本文件
向 HDFS 中上傳任意文本文件,如果指定的文件在 HDFS 中已經(jīng)存在,由用戶指定是追加到原有文件末尾還是覆蓋原有的文件,命令如下:
./bin/hdfs dfs -put /home/bailu/myLocalFile.txt input具體如下圖所示:
3.2.2、從 HDFS 中下載指定文件
從 HDFS 中下載指定文件,如果本地文件與要下載的文件名稱相同,則自動(dòng)對(duì)下載的文件重命名,命令如下:
./bin/hdfs dfs -get input/myLocalFile.txt /home/bailu/下載具體如下圖所示:
3.2.3、輸出 HDFS 指定文件到終端中
將 HDFS 中指定文件的內(nèi)容輸出到終端中,命令如下:
./bin/hdfs dfs -cat input/myLocalFile.txt具體如下圖所示:
3.2.4、顯示 HDFS 中指定的文件信息
顯示 HDFS 中指定的文件的讀寫權(quán)限、大小、創(chuàng)建時(shí)間、路徑等信息,命令如下:
./bin/hdfs dfs -ls input/myLocalFile.txt具體如下圖所示:
3.2.5、輸出 HDFS 指定目錄下文件信息
給定 HDFS 中某一個(gè)目錄,輸出該目錄下的所有文件的讀寫權(quán)限、大小、創(chuàng)建時(shí)間、路徑等信息,如果該文件是目錄,則遞歸輸出該目錄下所有文件相關(guān)信息,命令如下:
./bin/hdfs dfs -ls input具體如下圖所示:
3.2.6、指定路徑創(chuàng)建和刪除文件
提供一個(gè) HDFS 內(nèi)的文件的路徑,對(duì)該文件進(jìn)行創(chuàng)建和刪除操作。如果文件所在目錄不存在,則自動(dòng)創(chuàng)建目錄(以操作 empty.txt 文件為例),創(chuàng)建文件操作命令如下:
./bin/hdfs dfs -touchz empty.txt具體如下圖所示:
刪除文件操作命令如下:
具體如下圖所示:
3.2.7、指定路徑創(chuàng)建和刪除目錄
提供一個(gè) HDFS 的目錄的路徑,對(duì)該目錄進(jìn)行創(chuàng)建和刪除操作。創(chuàng)建目錄時(shí),如果目錄文件所在目錄不存在則自動(dòng)創(chuàng)建相應(yīng)目錄;刪除目錄時(shí),由用戶指定當(dāng)該目錄不為空時(shí)是否還刪除該目錄(以操作 empty 文件夾為例),創(chuàng)建目錄操作命令如下:
./bin/hdfs dfs -mkdir empty具體如下圖所示:
刪除目錄操作命令如下:
具體如下圖所示:
3.2.8、向 HDFS 中指定的文件追加內(nèi)容
向 HDFS 中指定的文件追加內(nèi)容,由用戶指定內(nèi)容追加到原有文件的開頭或結(jié)尾。
我們先在本地 /home/bailu 下創(chuàng)建 test.txt 文件,并添加內(nèi)容如下圖所示:
將 test.txt 文件上傳至 HDFS 文件系統(tǒng) /user/bailu/input 目錄下,具體如下圖所示:
追加 test.txt 文件至 myLocalFile.txt 文件后,命令如下:
具體如下圖所示:
3.2.9、刪除 HDFS 中指定的文件
刪除 HDFS 中指定的文件 test.txt,命令如下:
./bin/hdfs dfs -rm input/test.txt具體如下圖所示:
3.2.10、刪除 HDFS 中指定的目錄
刪除 HDFS 中指定的目錄,由用戶指定目錄中如果存在文件時(shí)是否刪除目錄(以操作 empty 目錄為例),先創(chuàng)建 empty 目錄,命令如下:
./bin/hdfs dfs -mkdir empty具體如下圖所示:
刪除 empty 目錄,命令如下:
具體如下圖所示:
3.2.11、將文件從源路徑移動(dòng)到目的路徑
在 HDFS 中,將文件從源路徑移動(dòng)到目的路徑(以把 input 下的 myLocalFile.txt 文件移動(dòng)到 empty 文件夾為例),命令如下:
./bin/hdfs dfs -mv input/myLocalFile.txt empty具體如下圖所示:
總結(jié)
本文通過使用 HDFS 文件系統(tǒng)對(duì)目錄和文件兩大結(jié)構(gòu)類型進(jìn)行了增刪改查的基本操作,幫助初學(xué)者進(jìn)一步鞏固 HDFS 的實(shí)驗(yàn)操作,為之后的學(xué)習(xí)奠定基礎(chǔ)。初學(xué)的同學(xué)可能會(huì)覺得甚是繁瑣,命令比較多,熟能生巧即可。我是白鹿,一個(gè)不懈奮斗的程序猿。望本文能對(duì)你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補(bǔ)充可以留言在文章下方,感謝大家的支持!
總結(jié)
以上是生活随笔為你收集整理的大数据基础系列 5:Hadoop 实验——熟悉常用的 HDFS 目录操作和文件操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言超级玛丽菜单模块源码
- 下一篇: macd线是什么意思 看懂股票里macd