国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

實(shí)驗(yàn)二 HDFS的Shell命令操作,和HDFS的API操作

這篇具有很好參考價(jià)值的文章主要介紹了實(shí)驗(yàn)二 HDFS的Shell命令操作,和HDFS的API操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

來(lái)自博主卷毛迷你豬的授權(quán),這是我的老師的博客多多關(guān)注

實(shí)驗(yàn)?zāi)康?/h2>

掌握 Hadoop 中 HDFS 的 Shell 命令操作
掌握 Hadoop 中 HDFS 的API操作
? 項(xiàng)目1:HDFS常見(jiàn)命令練習(xí)
? 項(xiàng)目2:HDFS命令的綜合運(yùn)用實(shí)踐
? 項(xiàng)目3:HDFS的API使用實(shí)踐
? 項(xiàng)目4:HDFS的API單元測(cè)試程序和更多思考(選做)

一、 實(shí)驗(yàn)原理

? HDFS是hadoop平臺(tái)的核心組成之一。
? HDFS的訪問(wèn)方式有多種,可通過(guò)web訪問(wèn),也可通過(guò)shell方式或者API方式訪問(wèn)。
? 基本操作有:對(duì)文件的讀、寫(xiě)、追加、刪除;新建文件夾、刪除文件夾等;還可顯示文件及文件夾的屬性。

二、實(shí)驗(yàn)準(zhǔn)備

? 實(shí)驗(yàn)一中已經(jīng)完成配置的偽分布式hadoop環(huán)境。
? 項(xiàng)目1、項(xiàng)目2,可以直接使用上述環(huán)境
? 項(xiàng)目3有可能需要配置自己的虛擬機(jī)網(wǎng)絡(luò)連接模式

實(shí)驗(yàn)內(nèi)容

【實(shí)驗(yàn)項(xiàng)目】項(xiàng)目1、項(xiàng)目2、項(xiàng)目3必做;項(xiàng)目4選做
? 項(xiàng)目1:HDFS常見(jiàn)命令練習(xí)
? 項(xiàng)目2:HDFS命令的綜合運(yùn)用實(shí)踐
? 項(xiàng)目3:HDFS的API使用實(shí)踐
? 項(xiàng)目4:HDFS的API單元測(cè)試程序和更多思考(選做)

步驟

項(xiàng)目1 HDFS常見(jiàn)命令練習(xí)

? 我們先熟悉一下HDFS的Shell命令,(以下實(shí)驗(yàn)使用hdfs dfs類(lèi)命令,可以在終端輸入hdfs dfs -help command查詢命令用法),執(zhí)行并查看結(jié)果。

列出HDFS當(dāng)前用戶家目錄下的文件及文件夾:

? (1)列出HDFS當(dāng)前用戶家目錄下的文件及文件夾:(剛開(kāi)始是沒(méi)有文件夾的需要自己新建)
hdfs dfs -ls (hdfs dfs -ls [path])
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

列出HDFS文件下名為directory的文件夾中的文件:

? (2)列出HDFS文件下名為directory的文件夾中的文件:
hdfs dfs -ls directory
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

上傳文件,將本地目錄file1文件上傳到HDFS上并重命名為file2:

? (3)上傳文件,將本地目錄file1文件上傳到HDFS上并重命名為file2:
hdfs dfs -put file1 file2
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

下載文件,將HDFS中的file2文件復(fù)制到本地系統(tǒng)并命名為file1:

? (4)下載文件,將HDFS中的file2文件復(fù)制到本地系統(tǒng)并命名為file1:
hdfs dfs -get file2 file1
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

查看文件,查看HDFS下file1文件中的內(nèi)容:

? (5)查看文件,查看HDFS下file1文件中的內(nèi)容:
hdfs dfs -cat file1
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

刪除文檔,刪除HDFS下名為file1的文件:

? (6)刪除文檔,刪除HDFS下名為file1的文件:
hdfs dfs -rm file1
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

在HDFS根路徑下建立新目錄,名為directory:

? (7)在HDFS根路徑下建立新目錄,名為directory:
hdfs dfs -mkdir /directory
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

本地文件復(fù)制到HDFS(注意與put的區(qū)別):

? (8)本地文件復(fù)制到HDFS(注意與put的區(qū)別):
hdfs dfs -copyFromLocal LocalPath ToPath

簡(jiǎn)單的說(shuō),-put更寬松,可以把本地或者HDFS上的文件拷貝到HDFS中;而-copyFromLocal則更嚴(yán)格限制只能拷貝本地文件到HDFS中。
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

本地文件移動(dòng)到HDFS

? (9)本地文件移動(dòng)到HDFS:
hdfs dfs -moveFromLocal LocalPath ToPath
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

文件或文件夾復(fù)制:

? (10)文件或文件夾復(fù)制:
hdfs dfs -cp src dsth
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

文件或文件夾的移動(dòng):

? (11)文件或文件夾的移動(dòng):
hdfs dfs -mv src dst
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

copyToLocal 復(fù)制文件到本地:

? (12)copyToLocal 復(fù)制文件到本地:
hdfs dfs -copyToLocal src dst
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

touchz 創(chuàng)建一個(gè)空文件file:

? (13) touchz 創(chuàng)建一個(gè)空文件file:
hdfs dfs -touchz file
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

追加到文件末尾的指令:

14)追加到文件末尾的指令:
hdfs dfs -appendToFile local.txt text.txt
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

項(xiàng)目2 HDFS命令的綜合運(yùn)用實(shí)踐

【注】文件名字可以自己取,重點(diǎn)是命令執(zhí)行是否成功

? (1)創(chuàng)建一個(gè)文件file1,查看file1是否創(chuàng)建成功,往file1內(nèi)寫(xiě)一些內(nèi)容。

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

? (2)在HDFS上創(chuàng)建一個(gè)文件夾folder1,把file1上傳到folder1中。

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

? (3)查看是否上傳成功,成功后查看file1的內(nèi)容。

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

? (4)把file1下載到本地,查看file1的內(nèi)容。

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

? (5)把folder1刪除,并查看是否刪除成功。

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

? (6)最后把本地的file1刪除

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

【拓展與思考】

【拓展與思考】思考題1、思考題2、思考題3必做,其余選做

? 思考題1(必做):對(duì)項(xiàng)目1、項(xiàng)目2命令行操作的結(jié)果,是否能在Web訪問(wèn)模式下看到?如果能請(qǐng)截圖舉例說(shuō)明;如果不能,請(qǐng)查清原因并確認(rèn)結(jié)果。

1.先進(jìn)入50070,在Utilities下的Browse the file system下可以先看見(jiàn)我們之前創(chuàng)建的目錄信息
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
HDFS Web界面可以直接下載文件。單擊文件列表中需要下載的文件名,超鏈接在彈出窗口中單擊【Download】,即可將文件下載到本地。
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

? 思考題2(必做):hdfs dfs -ls -R 某個(gè)HDFS上的目錄 該命令中“R”參數(shù)的作用是什么?請(qǐng)截圖并給出相應(yīng)的說(shuō)明。

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

在hdfs dfs -ls命令中,-R參數(shù)表示遞歸地列出指定目錄下的所有文件和子目錄,包括子目錄中的文件和子目錄。如果不加-R參數(shù),則只會(huì)列出指定目錄下的文件和子目錄,不會(huì)遞歸到子目錄中去。

因此,使用hdfs dfs -ls -R <hdfs_directory>命令可以遞歸地列出指定HDFS目錄下的所有文件和子目錄的詳細(xì)信息,包括文件名、權(quán)限、大小、修改時(shí)間等信息。這對(duì)于需要查看大量文件和子目錄的情況非常有用,可以方便快捷地查看整個(gè)目錄結(jié)構(gòu),并且不需要手動(dòng)進(jìn)入每個(gè)子目錄進(jìn)行查看。
? 思考題3(必做):如果已經(jīng)上傳了某個(gè)本地A文件到HDFS上,并在HDFS中命名為file1, 那再次上傳A文件并在HDFS中命名為file1是否可行(路徑一致)?如果換另一個(gè)本地文件B上傳到HDFS中也命名為file1是否可行(路徑一致)?
如果已經(jīng)上傳了本地文件A到HDFS上,并在HDFS中命名為file1,再次上傳本地文件A并在HDFS中命名為file1是可行的,但實(shí)際上并不會(huì)改變?cè)械奈募?nèi)容,只會(huì)在HDFS上創(chuàng)建一個(gè)新的副本。

如果上傳另一個(gè)本地文件B,并在HDFS中命名為file1(路徑一致),則會(huì)覆蓋原來(lái)的file1文件,即用新的文件B替換原有的文件A。
? 思考題4(必做):如果操作對(duì)象是文件夾,如何使用命令完成和文件類(lèi)似的操作?
如果需要操作的對(duì)象是文件夾,可以使用以下命令完成和文件類(lèi)似的操作:

上傳文件夾到HDFS:hdfs dfs -copyFromLocal <local_directory> <hdfs_directory> 或者 hdfs dfs -put <local_directory> <hdfs_directory>

下載HDFS文件夾到本地:hdfs dfs -copyToLocal <hdfs_directory> <local_directory> 或者 hdfs dfs -get <hdfs_directory> <local_directory>

在HDFS中創(chuàng)建文件夾:hdfs dfs -mkdir <hdfs_directory>

刪除HDFS中的文件夾:hdfs dfs -rm -r <hdfs_directory> 或者 hdfs dfs -rmdir <hdfs_directory>

顯示HDFS文件夾內(nèi)容:hdfs dfs -ls <hdfs_directory>

將本地文件夾合并到HDFS文件夾:hdfs dfs -put <local_directory>/* <hdfs_directory> 或者 hdfs dfs -copyFromLocal <local_directory>/* <hdfs_directory>
? 思考題5(選做,可加分保命): hdfs dfs -copyFromLocal 與 hdfs dfs -put 有什么區(qū)別?
hdfs dfs -copyFromLocal和hdfs dfs -put都是將本地文件上傳到HDFS的命令,但它們有以下區(qū)別:

hdfs dfs -copyFromLocal命令只能將本地文件復(fù)制到HDFS,而hdfs dfs -put命令可以將本地文件復(fù)制到HDFS,也可以將HDFS文件復(fù)制到HDFS。

hdfs dfs -put命令可以指定文件的權(quán)限、用戶和組,而hdfs dfs -copyFromLocal命令則不能指定這些參數(shù)。

hdfs dfs -put命令可以設(shè)置文件的塊大小和副本數(shù),而hdfs dfs -copyFromLocal命令則不能設(shè)置這些參數(shù)。

因此,如果只是將本地文件上傳到HDFS,并且不需要指定文件的權(quán)限、用戶和組以及文件塊大小和副本數(shù),則使用hdfs dfs -copyFromLocal命令更為簡(jiǎn)單方便。如果需要更多的控制和配置,則可以使用hdfs dfs -put命令。

? 思考題6(選做,可加分保命): linux中每一個(gè)命令其實(shí)都是對(duì)應(yīng)程序的執(zhí)行結(jié)果,那HDFS命令對(duì)應(yīng)的程序具體在哪些文件中定義呢?
在Linux系統(tǒng)中,可以通過(guò)which命令來(lái)查找HDFS命令對(duì)應(yīng)的程序所在的位置
該命令會(huì)輸出hdfs可執(zhí)行程序所在的路徑。

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

項(xiàng)目3 HDFS的API使用實(shí)踐

大致步驟

  1. 3-1 改造虛擬機(jī)網(wǎng)絡(luò)
  2. 3-2 改造Hadoop配置
  3. 3-3 編寫(xiě)代碼 ==> 要完成文件的 創(chuàng)建/追加/修改

實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)

【前置知識(shí)】VMware網(wǎng)絡(luò)配置中的:橋接模式、NAT模式和僅主機(jī)模式
問(wèn)題:如何讓虛擬機(jī)里的Linux設(shè)備上網(wǎng)呢?

橋接模式(Bridged Mode):這種模式會(huì)將虛擬機(jī)連接到主機(jī)所在的網(wǎng)絡(luò)中,讓虛擬機(jī)可以像主機(jī)一樣直接訪問(wèn)網(wǎng)絡(luò)。
橋接模式下要讓虛擬機(jī)里的Linux設(shè)備上網(wǎng)需要:
在VMware的網(wǎng)絡(luò)設(shè)置中選擇橋接模式,然后選擇要橋接的物理網(wǎng)絡(luò)適配器。
在Linux虛擬機(jī)中使用DHCP或手動(dòng)配置IP地址和其他網(wǎng)絡(luò)設(shè)置。
如果您使用的是DHCP,請(qǐng)確保虛擬機(jī)可以正確獲取IP地址、默認(rèn)網(wǎng)關(guān)和DNS服務(wù)器地址。

NAT模式(Network Address Translation Mode):這種模式會(huì)將虛擬機(jī)連接到主機(jī)所在的網(wǎng)絡(luò),但會(huì)使用主機(jī)的IP地址作為虛擬機(jī)的公共IP地址,因此虛擬機(jī)可以通過(guò)主機(jī)訪問(wèn)Internet。
NAT模式下要讓虛擬機(jī)里的Linux設(shè)備上網(wǎng),您需要:
在VMware的網(wǎng)絡(luò)設(shè)置中選擇NAT模式。
在Linux虛擬機(jī)中使用DHCP或手動(dòng)配置IP地址和其他網(wǎng)絡(luò)設(shè)置。
如果您使用的是DHCP,請(qǐng)確保虛擬機(jī)可以正確獲取IP地址、默認(rèn)網(wǎng)關(guān)和DNS服務(wù)器地址。
如果您手動(dòng)配置了IP地址,請(qǐng)將默認(rèn)網(wǎng)關(guān)設(shè)置為主機(jī)的IP地址。

僅主機(jī)模式(Host-Only Mode):這種模式只會(huì)將虛擬機(jī)連接到主機(jī)所在的網(wǎng)絡(luò)中,虛擬機(jī)不能直接訪問(wèn)Internet。
要讓虛擬機(jī)里的Linux設(shè)備上網(wǎng),您需要:
在VMware的網(wǎng)絡(luò)設(shè)置中選擇僅主機(jī)模式。
在Linux虛擬機(jī)中使用DHCP或手動(dòng)配置IP地址和其他網(wǎng)絡(luò)設(shè)置。
如果您使用的是DHCP,請(qǐng)確保虛擬機(jī)可以正確獲取IP地址、默認(rèn)網(wǎng)關(guān)和DNS服務(wù)器地址。
如果您手動(dòng)配置了IP地址,請(qǐng)將默認(rèn)網(wǎng)關(guān)設(shè)置為主機(jī)的IP地址,并設(shè)置主機(jī)為虛擬機(jī)的DNS服務(wù)器。

【前置知識(shí)】VMware網(wǎng)絡(luò)配置中的:橋接模式、NAT模式和僅主機(jī)模式
? 需要設(shè)置虛擬網(wǎng)絡(luò)
? 虛擬網(wǎng)絡(luò)配置有三種模式:
? 僅主機(jī)(適配器VMnet1)
? NAT (適配器VMnet8)
? 橋接
此處的適配器可以簡(jiǎn)單理解為
人們常說(shuō)的“網(wǎng)卡”。

? 查看下Windows下對(duì)應(yīng)的網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)服務(wù)
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

? 查看下Windows下對(duì)應(yīng)的網(wǎng)絡(luò)設(shè)備和VM網(wǎng)絡(luò)服務(wù) ==> win+r 輸入 services.msc 查看VM相關(guān)服務(wù)
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

橋接模式:讓物理機(jī)和虛擬機(jī)設(shè)置在同一個(gè)網(wǎng)段,前提是網(wǎng)段有多余的IP可用。
NAT模式:將物理機(jī)當(dāng)做一個(gè)路由器去使用
僅主機(jī)模式:Host-Only模式將虛擬機(jī)與外網(wǎng)隔開(kāi),使得虛擬機(jī)成為一個(gè)獨(dú)立的系統(tǒng),只與主機(jī)相互通訊

? 顯然:
? NAT模式才是最好的解決方案
? 且我們應(yīng)該放棄DHCP自動(dòng)賦值地址信息,手動(dòng)設(shè)置網(wǎng)絡(luò)更加符合實(shí)際需要
? 更多網(wǎng)絡(luò)知識(shí)細(xì)節(jié),可以參考以下鏈接(附錄中有完整網(wǎng)址):
? VMware虛擬機(jī)三種網(wǎng)絡(luò)模式:橋接模式,NAT模式,僅主機(jī)模式
? vmware 虛擬機(jī)三種網(wǎng)絡(luò)模式 橋接 NAT 僅主機(jī)區(qū)別 是什么意思
? 網(wǎng)絡(luò)連接的三種模式:橋接模式,Net模式,僅主機(jī)模式

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_1-1 確認(rèn)window上的虛擬網(wǎng)卡VMnet8開(kāi)啟(NAT用),手動(dòng)設(shè)置配置

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

【實(shí)操】step_1-2 確認(rèn)window上的虛擬網(wǎng)卡VMnet8開(kāi)啟(NAT用),手動(dòng)設(shè)置配置

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_2-1 設(shè)置VM中網(wǎng)絡(luò),在“虛擬網(wǎng)絡(luò)編輯器”中點(diǎn)擊“更改設(shè)置”
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_2-2 設(shè)置VM中網(wǎng)絡(luò),采用手動(dòng)NAT

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_2-3 設(shè)置VM中網(wǎng)絡(luò),設(shè)置網(wǎng)關(guān),點(diǎn)擊“添加”綁定通信端口
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_3-1 設(shè)置linux虛擬機(jī)網(wǎng)絡(luò),界面操作簡(jiǎn)單,也可以直接命令行

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_3-2 設(shè)置linux虛擬機(jī)網(wǎng)絡(luò),手動(dòng)填寫(xiě)剛才在Window下擬定的配置

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_3-3 確認(rèn)網(wǎng)絡(luò)可以訪問(wèn):試試ping百度、用瀏覽器上網(wǎng)(前提是物理機(jī)聯(lián)網(wǎng))

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_3-4 確認(rèn)網(wǎng)絡(luò)可以訪問(wèn):試試ping百度、用瀏覽器上網(wǎng)(前提是物理機(jī)聯(lián)網(wǎng))

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_3-5 在linux虛擬機(jī)中ping通windows物理機(jī)的VMnet8設(shè)定IP
第一次ping很長(zhǎng)時(shí)間也沒(méi)有數(shù)據(jù)(原因:沒(méi)有關(guān)閉win的防火墻)
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
關(guān)閉后:
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-1 改造虛擬機(jī)網(wǎng)絡(luò)
【實(shí)操】step_3-6 在windows側(cè)ping同linux虛擬機(jī),確認(rèn)兩邊網(wǎng)路通信OK(win+r cmd)
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-2 改造Hadoop配置

【實(shí)操】將hadoop涉及到的5個(gè)進(jìn)程的localhost都調(diào)整為新設(shè)定的IP,也可以使用/etc/hosts中設(shè)定一個(gè)名稱,方便后續(xù)快速更改(這樣做更加正規(guī))
step_1 先查看有哪些文件使用了localhost
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-2 改造Hadoop配置
【實(shí)操】step_2-1 在關(guān)閉Hadoop所有服務(wù)的前提下修改相關(guān)配置文件(yarn-site.xml)master是我自己的主機(jī)名,請(qǐng)?zhí)钭约旱模。。?/strong>
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
修改完后(第27行有語(yǔ)法錯(cuò)誤下圖還沒(méi)有修改應(yīng)為是前面截圖正確的是</property>,后面會(huì)講,看到就在這說(shuō)了)
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-2 改造Hadoop配置
【實(shí)操】step_2-2 在關(guān)閉Hadoop所有服務(wù)的前提下修改相關(guān)配置文件(hdfs-site.xml)

修改前:
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
修改后
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

作用:

這些代碼是 Hadoop 分布式文件系統(tǒng)的配置文件,其中包含以下三個(gè)屬性:

dfs.replication:該屬性設(shè)置了文件副本的數(shù)量。在這里,設(shè)置為1,表示文件只有一個(gè)副本存儲(chǔ)在文件系統(tǒng)中。這意味著 Hadoop 不會(huì)創(chuàng)建文件的備份,這將節(jié)省磁盤(pán)空間,但也增加了數(shù)據(jù)丟失的風(fēng)險(xiǎn)。

dfs.namenode.http.address:這個(gè)屬性指定了主 NameNode 的 HTTP 通信地址。在這里,設(shè)置為 master:50070,表示主 NameNode 在主機(jī)名為 master,端口號(hào)為 50070 的地址上運(yùn)行。

dfs.http.address:該屬性指定了所有 NameNode 和 DataNode 的 HTTP 通信地址。在這里,設(shè)置為 master:50070,表示所有節(jié)點(diǎn)都在主機(jī)名為 master,端口號(hào)為 50070 的地址上運(yùn)行。

總的來(lái)說(shuō),這些代碼的作用是設(shè)置 Hadoop 分布式文件系統(tǒng)的副本數(shù)量和各個(gè)節(jié)點(diǎn)的通信地址,以確保文件系統(tǒng)能夠正確地工作。

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-2 改造Hadoop配置
【實(shí)操】step_2-3 在關(guān)閉Hadoop所有服務(wù)的前提下修改相關(guān)配置文件(core-site.xml)
就改了主機(jī)名為master
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

作用:

hadoop.tmp.dir:該屬性指定了 Hadoop 的臨時(shí)目錄路徑。在這里,設(shè)置為 /home/hadoop/hadoop/tmp,表示 Hadoop 將使用這個(gè)路徑作為臨時(shí)目錄來(lái)存儲(chǔ)各種臨時(shí)文件和數(shù)據(jù)。

fs.defaultFS:該屬性指定了 Hadoop 的默認(rèn)文件系統(tǒng)。在這里,設(shè)置為 hdfs://master,表示 Hadoop 的默認(rèn)文件系統(tǒng)是一個(gè)名為 master 的 NameNode 上運(yùn)行的 HDFS 文件系統(tǒng)。

這些配置文件的作用是為 Hadoop 集群配置一些默認(rèn)值,例如臨時(shí)目錄和默認(rèn)文件系統(tǒng)。這些屬性可以通過(guò)修改配置文件來(lái)改變,以適應(yīng)特定的應(yīng)用程序需求。

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-2 改造Hadoop配置
【實(shí)操】step_2-4 最后在檢查下是否還有遺漏
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-2 改造Hadoop配置
【實(shí)操】step_2-5 啟動(dòng)Hadoop,確認(rèn)相關(guān)JVM進(jìn)程正常工作
前面啟動(dòng)發(fā)現(xiàn)JVM(start-all.sh)報(bào)錯(cuò)yarn-site.xml,是前面的語(yǔ)法錯(cuò)誤,可以回看我yarn-site.xml的截圖
修復(fù)完后成功啟動(dòng)
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-2 改造Hadoop配置
【實(shí)操】step_2-6 簡(jiǎn)單測(cè)試功能是否可用
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
發(fā)現(xiàn)沒(méi)有問(wèn)題

實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-3 編寫(xiě)代碼

【實(shí)操】此處用eclipse演示,具體細(xì)節(jié)請(qǐng)參考梁江懷老師博客

  1. 配置開(kāi)發(fā)環(huán)境
    (1)我們建議,可先采用非Maven的方式完成開(kāi)發(fā),因?yàn)檫@樣可以規(guī)避許多的網(wǎng)絡(luò)訪問(wèn)問(wèn)題。
    (2)如果非Maven方式完成后,再嘗試去做Maven模式。
  2. 參考博客,編寫(xiě)代碼
    (1)非Maven工程API訪問(wèn)HDFS
    https://blog.csdn.net/qq_42881421/article/details/83001401
    本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
    跟著弄成功運(yùn)行!

(2)Maven工程API訪問(wèn)HDFS
https://blog.csdn.net/qq_42881421/article/details/100762022
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

【注】
? Maven的相關(guān)配置和下載請(qǐng)耐心完成
? 如果遇到海外網(wǎng)絡(luò)不能訪問(wèn)的問(wèn)題,請(qǐng)參考實(shí)驗(yàn)1介紹的配置國(guó)內(nèi)鏡像源的方法解決
? 其實(shí)為了方便,建議直接使用IDEA完成;后續(xù)課程《大數(shù)據(jù)內(nèi)存計(jì)算》(spark)也要使用IDEA
根據(jù)教程同樣完成:
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-3 編寫(xiě)代碼
【實(shí)操】如果對(duì)環(huán)境配置不熟悉,可以先看:
(3)熟悉Eclipse + Maven的JAVA開(kāi)發(fā)環(huán)境
https://blog.csdn.net/qq_42881421/article/details/82945454
(4)IDEA + Maven工程
https://blog.csdn.net/qq_42881421/article/details/100717502
(5)Maven的單篇安裝教程
https://blog.csdn.net/qq_42881421/article/details/82900849

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-3 編寫(xiě)代碼
【實(shí)操】完成Maven工程配置后,編寫(xiě)如下代碼(此處僅僅是文件內(nèi)容讀取,注意自己虛擬機(jī)的IP和端口)

package com.test.HDFS;
 
 
import java.io.IOException;
 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
 
public class ReadFile {
 
	public static void main(String[] args) throws IOException {
		//創(chuàng)建Configuration實(shí)例
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://192.168.244.130:8020");//注意修改成Linux的IP
		//通過(guò)配置獲取到文件系統(tǒng)
		FileSystem fs = FileSystem.get(conf);
		//定義要讀取文件所在的HDFS路徑
		Path src=new Path("hdfs://192.168.244.130:8020/AAA");//注意修改成Linux的IP
		//通過(guò)文件系統(tǒng)的open()方法得到一個(gè)文件輸入流,用于讀取
		FSDataInputStream dis = fs.open(src);
		//用IOUtils下的copyBytes將流中的數(shù)據(jù)打印輸出到控制臺(tái)
		IOUtils.copyBytes(dis, System.out, conf);
        //關(guān)閉輸入流
        dis.close();
	}
}

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-3 編寫(xiě)代碼
【實(shí)操】注意,我們?cè)谔摂M網(wǎng)絡(luò)IP的設(shè)備上編寫(xiě)了一個(gè)Client程序,用于讀取HDFS上對(duì)應(yīng)文件的內(nèi)容:
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目3-3 編寫(xiě)代碼
【實(shí)操】注意,通過(guò)編寫(xiě)HDFS API程序,我們一共要完成以下六個(gè)功能:
? 文件的創(chuàng)建
? 文件的刪除
? 文件的上傳
? 文件的下載
? 文件屬性查看
? 文件內(nèi)容查看
編寫(xiě)HDFS API程序可以使用Java編程語(yǔ)言,并使用Hadoop的Java API庫(kù)進(jìn)行開(kāi)發(fā)。以下是六個(gè)基本功能的實(shí)現(xiàn)方法:

文件的創(chuàng)建
package com.test.HDFS;

import org.apache.hadoop.conf.*;
import org.apache.hadoop.fs.*;
import java.net.URI;

public class CreateFile {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration(); // 創(chuàng)建Hadoop配置對(duì)象
        URI uri = new URI("hdfs://192.168.244.130:8020"); // 定義HDFS連接參數(shù)
        FileSystem fs = FileSystem.get(uri, conf, "hadoop"); // 獲取HDFS文件系統(tǒng)對(duì)象

        Path file = new Path("/Java_Create"); // 定義要?jiǎng)?chuàng)建的文件路徑
        FSDataOutputStream out = fs.create(file, true); // 創(chuàng)建文件輸出流,第二個(gè)參數(shù)表示是否覆蓋已有文件
        out.writeBytes("Hello World\n"); // 寫(xiě)入文件內(nèi)容(不支持中文)
        out.writeUTF("你好世界\n"); // 再次寫(xiě)入文件內(nèi)容(支持中文)
        out.close(); // 關(guān)閉文件輸出流

        fs.close(); // 關(guān)閉HDFS文件系統(tǒng)對(duì)象
    }
}

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

文件的刪除
package com.test.HDFS;
 
import java.net.URI; // 引入Java標(biāo)準(zhǔn)庫(kù)中的URI類(lèi),用于處理URI(統(tǒng)一資源標(biāo)識(shí)符)。
import org.apache.hadoop.conf.Configuration; // 引入Apache Hadoop庫(kù)中的Configuration類(lèi),用于讀取Hadoop集群的配置信息。
import org.apache.hadoop.fs.FileSystem; // 引入Apache Hadoop庫(kù)中的FileSystem類(lèi),用于訪問(wèn)Hadoop分布式文件系統(tǒng)(HDFS)。
import org.apache.hadoop.fs.Path; // 引入Apache Hadoop庫(kù)中的Path類(lèi),用于表示HDFS上的路徑。
public class DeleteFile {
	public static void main(String[] args) throws Exception {
		 Configuration conf=new Configuration();// 引入Apache Hadoop庫(kù)中的Path類(lèi),用于表示HDFS上的路徑。
		   //注意修改為自己的IP
		   URI uri=new URI("hdfs://192.168.244.130:8020");// 創(chuàng)建一個(gè)URI對(duì)象,表示Hadoop集群的名稱節(jié)點(diǎn)所在的地址和端口號(hào)。
		   FileSystem fs=FileSystem.get(uri,conf,"hadoop");//使用上述URI和Configuration對(duì)象,創(chuàng)建一個(gè)FileSystem對(duì)象,用于訪問(wèn)HDFS上的文件系統(tǒng)。
		   //HDFS file							
		   Path path=new Path("/user/hadoop/1.txt");//創(chuàng)建一個(gè)Path對(duì)象,表示HDFS上的文件路徑。
		   fs.delete(path,true);//使用FileSystem對(duì)象刪除HDFS上指定的文件,第二個(gè)參數(shù)true表示遞歸刪除,如果文件不存在也不會(huì)拋出異常。
	}
}
 

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

文件的上傳

第一次運(yùn)行下面代碼報(bào)錯(cuò),后面發(fā)現(xiàn)原因是path的問(wèn)題

package com.test.HDFS;
 
import org.apache.hadoop.conf.*;
import org.apache.hadoop.fs.*;
import java.net.URI;
public class UploadFile {
  public static void main(String[] args) throws Exception{
	   Configuration conf=new Configuration();
	   //注意修改為自己的IP
	   URI uri=new URI("hdfs://192.168.244.130:8020");
	   FileSystem fs=FileSystem.get(uri,conf,"hadoop");
	   //local file
	   Path localPath=new Path("?E:/Hello.txt");//這里寫(xiě)的是Windows系統(tǒng)下的文件路徑,注意按實(shí)際修改。
	   //HDFS file								
	   //上傳到目的地路徑,可以自定義, hdfs的/user/hadoop目錄需要先用命令創(chuàng)建出來(lái)
	   Path dstPath=new Path("/hadoop/Hello.txt_Win");
	   fs.copyFromLocalFile(localPath,dstPath);
  }
}

把代碼的Path改成下面這個(gè),然后運(yùn)行發(fā)現(xiàn)成功了

Path localPath = new Path(“file:///E:/Hello.txt”);
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

文件的下載

鏈接的教程這里有點(diǎn)小錯(cuò)誤,跟我改就可以了

package com.test.HDFS;
 
import org.apache.hadoop.conf.*;
import org.apache.hadoop.fs.*;
import java.net.URI;
public class DownloadFile {
  public static void main(String[] args) throws Exception{
           Configuration conf=new Configuration();
		   URI uri=new URI("hdfs://192.168.244.130:8020");
		   FileSystem fs=FileSystem.get(uri,conf,"hadoop");
		   //HDFS文件:"/2.txt"為hdfs的文件,如果沒(méi)有該文件請(qǐng)從Linux上傳一個(gè)文件到HDFS.									
		   Path dstPath=new Path("/hadoop/Hello.txt_Win");
		   //local文件位置:需要先在Windows D盤(pán)創(chuàng)建一個(gè)test文件夾存放下載的文件
		   Path localPath=new Path("file:///D:/Download_Linux");
		   //從HDFS下載文件到本地
		   fs.copyToLocalFile(false,dstPath,localPath,true);
   }
}

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)
運(yùn)行成功

文件屬性查看

文件內(nèi)容查看

package com.test.HDFS;
 
 
import org.apache.hadoop.conf.*;
import org.apache.hadoop.fs.*;
import java.net.URI;
import java.sql.Date;
import java.text.SimpleDateFormat;
public class FileAttr {
  public static void main(String[] args) throws Exception {
           Configuration conf=new Configuration();
		   URI uri=new URI("hdfs://192.168.244.130:8020");
		   FileSystem fs=FileSystem.get(uri,conf,"hadoop");
		   //locate file 文件位置
		   Path fpath=new Path("/hadoop/Hello.txt_Win");
		   FileStatus filestatus=fs.getFileLinkStatus(fpath);//指定要獲取屬性的文件路徑。
		   //get block size 獲取文件塊大小
		   long blocksize=filestatus.getBlockSize();
		   System.out.println("blocksize:"+blocksize);
		   //get file size 獲取文件大小
		   long filesize=filestatus.getLen();
		   System.out.println("filesize:"+filesize);
		   //get file owner 獲取文件所屬者
		   String fileowner=filestatus.getOwner();
		   System.out.println("fileowner:"+fileowner);
		   //get file access time 獲取文件存取時(shí)間
		   SimpleDateFormat formatter=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
		   long accessTime=filestatus.getAccessTime();
		   System.out.println("access time:"+formatter.format(new Date(accessTime)));
		   //get file modify time 獲取文件修改時(shí)間
		   long modifyTime=filestatus.getModificationTime();
		   System.out.println("modify time:"+formatter.format(new Date(modifyTime)));
   }
}

運(yùn)行成功
本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

所有代碼都可以參考 梁江懷 老師博客 or 科普白皮教材 or 《權(quán)威指南》

【拓展與思考】

思考題7(選做,可加分保命)實(shí)際上HDFS的命令除了 hdfs 也有 hadoop的,譬如hadoop fs -ls / 就等同于 hdfs dfs -ls /,請(qǐng)問(wèn)這兩種命令有和不同嗎?
實(shí)際上,hadoop fs和hdfs dfs命令是相同的,只是在不同的Hadoop版本中使用不同的命令。
在早期版本中,hadoop fs是主要的文件系統(tǒng)命令,而在較新的版本中,hdfs dfs是主要的文件系統(tǒng)命令。
因此,兩種命令的功能是相同的,都可以用于在HDFS中執(zhí)行文件系統(tǒng)操作。
例如,hadoop fs -ls /和hdfs dfs -ls /命令都用于列出HDFS根目錄中的文件和目錄。
思考題8 (選做,可加分保命)hdfs dfs -ls的顯示結(jié)果中,是否能夠看到block副本數(shù)量,如果可以請(qǐng)指明,否則說(shuō)明情況。
在hdfs dfs -ls命令的輸出中,默認(rèn)情況下是不會(huì)顯示文件的block副本數(shù)量的。
但是,您可以使用hdfs dfs -ls -h命令來(lái)顯示文件的人類(lèi)可讀形式的大小和block副本數(shù)量。
該命令的輸出將包括文件大小、權(quán)限、所有者、組、修改時(shí)間、路徑和block副本數(shù)量等信息。
思考題9(選做,可加分保命)之前學(xué)習(xí)Linux文件系統(tǒng)時(shí),我們討論過(guò)文件權(quán)限問(wèn)題,請(qǐng)思考HDFS中的文件權(quán)限會(huì)有和不同之處?
雖然HDFS中的文件權(quán)限控制與Linux文件系統(tǒng)中的文件權(quán)限控制有些相似之處,但也存在一些重要的不同之處,
這些差異主要體現(xiàn)在權(quán)限控制的簡(jiǎn)單性和一些特殊性。
HDFS中的權(quán)限控制是由Hadoop的NameNode管理的,
而不是像Linux文件系統(tǒng)一樣是由操作系統(tǒng)內(nèi)核管理的。
HDFS中的文件權(quán)限比Linux文件系統(tǒng)中的文件權(quán)限更加簡(jiǎn)單,只包括讀(read)、寫(xiě)(write)和執(zhí)行(execute)三種權(quán)限。
HDFS中的文件權(quán)限控制比較粗粒度,只能控制整個(gè)文件或目錄的讀寫(xiě)執(zhí)行權(quán)限,而不能對(duì)文件的特定部分進(jìn)行訪問(wèn)控制。
思考題10(選做,可加分保命)HDFS中的distcp命令的作用是什么?它與hdfs dfs -cp 命令有何不同?
與hdfs dfs -cp命令相比,distcp命令的主要不同之處在于以下幾點(diǎn)
并行復(fù)制:distcp命令可以在多個(gè)源和目標(biāo)之間并行復(fù)制數(shù)據(jù),以加快復(fù)制速度。例如,可以使用多個(gè)并發(fā)任務(wù)來(lái)復(fù)制不同的文件或子目錄,每個(gè)任務(wù)都會(huì)復(fù)制一部分?jǐn)?shù)據(jù),以最大程度地利用集群的帶寬和處理能力。
跨集群復(fù)制:distcp命令可以在不同的HDFS集群之間復(fù)制數(shù)據(jù),而hdfs dfs -cp命令只能在同一集群內(nèi)復(fù)制數(shù)據(jù)。這使得distcp命令非常適合在多個(gè)地理位置或不同的組織之間復(fù)制數(shù)據(jù),例如,將數(shù)據(jù)從一個(gè)Hadoop集群復(fù)制到另一個(gè)Hadoop集群或?qū)?shù)據(jù)從Hadoop集群復(fù)制到云存儲(chǔ)服務(wù)等。
自動(dòng)故障恢復(fù):distcp命令可以自動(dòng)檢測(cè)和恢復(fù)復(fù)制過(guò)程中的故障和錯(cuò)誤。如果其中一個(gè)復(fù)制任務(wù)失敗,distcp命令可以自動(dòng)重新啟動(dòng)該任務(wù),或者將失敗的任務(wù)分成更小的子任務(wù)進(jìn)行重試,以確保復(fù)制過(guò)程的連續(xù)性和正確性。
高級(jí)選項(xiàng):distcp命令還提供了一些高級(jí)選項(xiàng),例如設(shè)置帶寬限制、跳過(guò)已經(jīng)復(fù)制的文件、忽略某些文件或目錄、在源和目標(biāo)之間進(jìn)行差異對(duì)比等。

項(xiàng)目4 HDFS的API單元測(cè)試程序和更多思考(選做)–還沒(méi)寫(xiě)

【目的】目前實(shí)驗(yàn)課程也在不斷進(jìn)化和改革,其實(shí)思考題和選做部分的內(nèi)容才能真正訓(xùn)練大家對(duì)課程知識(shí)體系的理解,也和培訓(xùn)班面向面試從業(yè)的理念更加貼近。
【思考】
Q1:每次為了嘗試使用HDFS的API都要寫(xiě)一個(gè)類(lèi),然后編寫(xiě)main嗎?
A1:這樣做太業(yè)余了,明顯應(yīng)該用Java課程中學(xué)過(guò)的UT測(cè)試去編寫(xiě)測(cè)試代碼啊。

Q2:一直強(qiáng)調(diào)文件分塊是為了適應(yīng)分布式計(jì)算,那么這點(diǎn)是如何體現(xiàn)的呢?
A2:參看“seek”和“文件屬性”案例

Q3:HDFS是分布式的,那么如果我們文件中寫(xiě)入了數(shù)據(jù),那么這些數(shù)據(jù)能夠被立即讀取到嗎?
A3:參看《權(quán)威指南》P74,進(jìn)一步理解I/O流,理解為何要出現(xiàn)工具類(lèi)IOUtils

【注】還是那句話,多看經(jīng)典書(shū)籍,多看項(xiàng)目作者寫(xiě)的資料、論文和書(shū)籍,辨(yuan)證(離開(kāi))垃圾教材和教程;培訓(xùn)班的課程要分辨著聽(tīng);學(xué)習(xí)技術(shù)知識(shí)一定要有自己的總結(jié)。

實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-0 簡(jiǎn)單設(shè)置UT

前面沒(méi)發(fā)現(xiàn)要導(dǎo)org.junit.Before,直接@Before報(bào)錯(cuò)
后面發(fā)現(xiàn)在如下界面導(dǎo)入

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

本關(guān)任務(wù):hdfs命令實(shí)戰(zhàn),Hadoop,hdfs,hadoop,大數(shù)據(jù)

實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-1 單元測(cè)試mkdir

? 根據(jù)前面@Before的注釋?zhuān)冗x擇hd賬號(hào)創(chuàng)建/lab2目錄

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-1 單元測(cè)試mkdir
【結(jié)果】

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-1 單元測(cè)試mkdir
【結(jié)果】

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-1 單元測(cè)試mkdir
? 根據(jù)前面@Before的注釋?zhuān)馁~號(hào)為ubuntu,執(zhí)行命令報(bào)錯(cuò)

? 注意,打印語(yǔ)句在報(bào)錯(cuò)之前,所以信息仍然是:“目錄已存在,將刪除后重建”
? 錯(cuò)誤調(diào)用棧信息比較多,在下一頁(yè)展示,可以看到權(quán)限錯(cuò)誤

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-1 單元測(cè)試mkdir

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-1 單元測(cè)試mkdir

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-1 單元測(cè)試mkdir

實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-2 單元測(cè)試upload

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-2 單元測(cè)試upload

實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-3 單元測(cè)試blocks

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-3 單元測(cè)試blocks文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-858360.html

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-3 單元測(cè)試blocks

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-3 單元測(cè)試blocks

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-3 單元測(cè)試blocks

4.實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-3 單元測(cè)試blocks

實(shí)驗(yàn)內(nèi)容 項(xiàng)目4-4 MD5校驗(yàn)

到了這里,關(guān)于實(shí)驗(yàn)二 HDFS的Shell命令操作,和HDFS的API操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 從零開(kāi)始的Hadoop學(xué)習(xí)(五)| HDFS概述、shell操作、API操作

    從零開(kāi)始的Hadoop學(xué)習(xí)(五)| HDFS概述、shell操作、API操作

    1.1 HDFS 產(chǎn)出背景及定義 1) HDFS 產(chǎn)生背景 隨著數(shù)據(jù)量越來(lái)越大,在一個(gè)操作系統(tǒng)存不下所有的數(shù)據(jù),那么就分配到更多的操作系統(tǒng)管理的磁盤(pán)中,但是不方便管理和維護(hù),迫切 需要一種系統(tǒng)來(lái)管理多臺(tái)機(jī)器上的文件 ,這就是分布式文件管理系統(tǒng)。 HDFS只是分布式文件管理系統(tǒng)

    2024年02月10日
    瀏覽(94)
  • Hadoop的安裝和使用,Windows使用shell命令簡(jiǎn)單操作HDFS

    Hadoop的安裝和使用,Windows使用shell命令簡(jiǎn)單操作HDFS

    目錄 1,Hadoop簡(jiǎn)介 2,分布式文件系統(tǒng)HDFS 1. HDFS簡(jiǎn)介 2.HDFS體系結(jié)構(gòu) 3,Hadoop的安裝 1.使用WEB管理頁(yè)面操作HDFS 2.使用命令操作HDFS ?4,HDFS的基本使用方法 1)啟動(dòng)hadoop,為當(dāng)前登錄的Windows用戶在HDFS中創(chuàng)建用戶目錄 2)在用戶名user/zhangna下創(chuàng)建test目錄 3)將windows操作系統(tǒng)本地的一個(gè)

    2024年02月04日
    瀏覽(27)
  • 大數(shù)據(jù):HDFS的Shell操作,進(jìn)程啟動(dòng)管理,文件系統(tǒng)操作命令,創(chuàng)建文件文件夾,下載上傳,復(fù)制移動(dòng),刪除,展示,追加內(nèi)容

    大數(shù)據(jù):HDFS的Shell操作,進(jìn)程啟動(dòng)管理,文件系統(tǒng)操作命令,創(chuàng)建文件文件夾,下載上傳,復(fù)制移動(dòng),刪除,展示,追加內(nèi)容

    2022找工作是學(xué)歷、能力和運(yùn)氣的超強(qiáng)結(jié)合體,遇到寒冬,大廠不招人,可能很多算法學(xué)生都得去找開(kāi)發(fā),測(cè)開(kāi) 測(cè)開(kāi)的話,你就得學(xué)數(shù)據(jù)庫(kù),sql,oracle,尤其sql要學(xué),當(dāng)然,像很多金融企業(yè)、安全機(jī)構(gòu)啥的,他們必須要用oracle數(shù)據(jù)庫(kù) 這oracle比sql安全,強(qiáng)大多了,所以你需要學(xué)

    2024年02月07日
    瀏覽(103)
  • 07-HDFS入門(mén)及shell命令

    是一種存儲(chǔ)和組織數(shù)據(jù)的方法,它使得文件訪問(wèn)和查詢變得容易 使得文件和樹(shù)形目錄的抽象邏輯概念代替了磁盤(pán)等物理設(shè)備使用數(shù)據(jù)塊的概念,用戶使用文件系統(tǒng)來(lái)保存數(shù)據(jù)不必關(guān)心數(shù)據(jù)底層存在硬盤(pán)哪里,只需記住這個(gè)文件的所屬目錄和文件名 文件系統(tǒng)通常使用磁盤(pán)和光

    2024年02月13日
    瀏覽(56)
  • HDFS的Shell操作

    HDFS的Shell操作

    目錄 一、進(jìn)程啟停管理 (一)一鍵啟停腳本 (二)單進(jìn)程啟停 二、文件系統(tǒng)操作命令 (一)HDFS文件系統(tǒng)基本信息 1.前置介紹 (二)命令介紹 1.新舊版本命令介紹 2.創(chuàng)建文件夾 3.查看指定目錄下內(nèi)容 4.上傳文件到HDFS指定目錄下 5.查看HDFS文件內(nèi)容 6.下載HDFS文件 7.拷貝HDFS文

    2024年04月16日
    瀏覽(16)
  • HDFS 基本 shell 操作

    HDFS 基本 shell 操作

    調(diào)用格式: 例如: 調(diào)用格式: 注意: 直接寫(xiě)/是省略了文件系統(tǒng)的名稱hdfs://ip:port。 例如: 調(diào)用格式: 例如: 調(diào)用格式: 本地文件 hello1.txt 的內(nèi)容追加到 hdfs 文件 hello.txt 的后面操作如下: 原 hello.txt:hello world 原 hello1.txt:hello 追加的 hello.txt 中內(nèi)容如下 查看分布式文件系統(tǒng)的目錄

    2024年02月15日
    瀏覽(18)
  • 2.2 HDFS shell操作

    2.2 HDFS shell操作 調(diào)用文件系統(tǒng)(FS)Shell命令應(yīng)使用 bin/hadoop fs 的形式 ls 使用方法:hadoop fs -ls 如果是文件,則按照如下格式返回文件信息: 文件名 副本數(shù) 文件大小 修改日期 修改時(shí)間 權(quán)限 用戶ID 組ID 如果是目錄,則返回它直接子文件的一個(gè)列表,就像在Unix中一樣。目錄返回

    2024年02月11日
    瀏覽(21)
  • hadoop基礎(chǔ):通過(guò) Shell 命令訪問(wèn) HDFS

    hadoop基礎(chǔ):通過(guò) Shell 命令訪問(wèn) HDFS

    HDFS Shell 是由一系列類(lèi)似 Linux Shell 的命令組成的。命令大致可分為 操作命令 、 管理命令 、 其他命令 三類(lèi) 操作命令是以“ hdfs dfs ”開(kāi)頭的命令。通過(guò)這些命令,用戶可以完成 HDFS 文件的 復(fù)制、刪除和查找 等操作,Shell 命令的一般格式如下。 hdfs dfs [通用選項(xiàng)] 其中,hdfs

    2023年04月08日
    瀏覽(28)
  • 【Hadoop】-HDFS的Shell操作[3]

    【Hadoop】-HDFS的Shell操作[3]

    目錄 前言 一、HDFS集群?jiǎn)⑼C?1.一鍵啟停腳本可用 2.獨(dú)立進(jìn)程啟??捎??二、文件系統(tǒng)操作命令 1、創(chuàng)建文件夾 2、查看指定目錄下內(nèi)容 3、上傳文件到HDFS指定目錄下? 4、查看HDFS文件內(nèi)容 5、下載HDFS文件 6、拷貝HDFS文件 7、追加數(shù)據(jù)到HDFS文件中 8、HDFS數(shù)據(jù)移動(dòng)操作 9、HDFS數(shù)

    2024年04月26日
    瀏覽(28)
  • Hadoop大數(shù)據(jù)技術(shù)-通過(guò)shell命令訪問(wèn)HDFS

    Hadoop大數(shù)據(jù)技術(shù)-通過(guò)shell命令訪問(wèn)HDFS

    HDFS shell大致可以分為操作命令、管理命令、其他命令三類(lèi)。 注意:當(dāng)命令以“$”開(kāi)頭時(shí),當(dāng)前用戶為普通用戶;以“#”開(kāi)頭時(shí),當(dāng)前用戶為root用戶。 操作命令是以“ hdfs dfs ”開(kāi)頭的命令,用戶可以通過(guò)執(zhí)行這些命令,完成對(duì)文件的查找、上傳、刪除等操作。 [-p]:表示如

    2023年04月11日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包