做cpa搭建哪個網(wǎng)站比較好永久免費制作網(wǎng)頁
大數(shù)據(jù)平臺技術(shù)課程實驗報告
實驗二:HDFS操作實踐
姓名:楊馥瑞
學號:2212080042
專業(yè):數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)
年級:2022級
主講教師:林英豪?
實驗時間:2024年3月15日3點 至?2024年3月15日4點40??????
實驗內(nèi)容與要求:
1?HDFS基本知識總結(jié)
2 HDFS接口的操作實踐
2.1 HDFS Shell 實踐
2.2 HDFS Web客戶端
2.3 HDFS Java API 實踐
特別提醒:
(1)基本知識點的總結(jié)請使用自己的語言,根據(jù)自己的理解去總結(jié),就像寫課程筆記一樣,不要去網(wǎng)上抄寫
(2)實踐需要有截圖以及相應的文字介紹,歡迎大家把自己在實踐過程中碰到的問題以及解決方法也記錄下來
- HDFS基本知識的總結(jié)
HDFS是一個分布式文件系統(tǒng),是Hadoop的核心組件之一。HDFS的設計目標是處理大數(shù)據(jù)集,能夠提供高可靠性、高可擴展性和高效性的數(shù)據(jù)存儲服務。下面是HDFS的一些基本知識點總結(jié):
????塊:HDFS將文件劃分為多個塊,每個塊默認大小為128MB,塊的大小可以自定義設置。塊的大小是為了提高數(shù)據(jù)讀取的效率,減少尋址時間。
副本:HDFS會自動將文件塊的副本分布到不同的數(shù)據(jù)節(jié)點上,以提高數(shù)據(jù)的可靠性和容錯性。每個塊的默認副本數(shù)為3,可以通過配置文件進行修改。副本分布的策略是將副本分配到不同的機架上,從而避免機架之間的單點故障。
Namenode:Namenode是HDFS的主節(jié)點,負責管理整個文件系統(tǒng)的命名空間、塊的元數(shù)據(jù)信息和訪問控制等。Namenode保存著每個文件的塊列表和塊所在的數(shù)據(jù)節(jié)點信息,以及每個塊的副本分布情況。
Datanode:Datanode是HDFS的工作節(jié)點,負責存儲文件塊的實際數(shù)據(jù)。Datanode會向Namenode發(fā)送心跳信號和塊狀態(tài)報告,以告知Namenode自己的存儲情況。如果某個塊的所有副本都失效了,Namenode會通知Datanode進行塊的復制。
客戶端:客戶端是HDFS文件系統(tǒng)的用戶,可以使用HDFS的API進行文件的讀寫和管理操作??蛻舳耸紫纫騈amenode發(fā)起請求,獲取文件的元數(shù)據(jù)信息,然后根據(jù)元數(shù)據(jù)信息訪問數(shù)據(jù)節(jié)點進行文件的讀寫。
數(shù)據(jù)流:HDFS將文件塊的傳輸分成若干個數(shù)據(jù)包,每個數(shù)據(jù)包通過TCP協(xié)議進行傳輸。數(shù)據(jù)包的大小默認為64KB,可以通過配置文件進行修改。在數(shù)據(jù)傳輸過程中,每個數(shù)據(jù)包會被多個Datanode進行轉(zhuǎn)發(fā)和接收,從而實現(xiàn)數(shù)據(jù)的并行傳輸。
故障恢復:HDFS采用了多種機制來保證數(shù)據(jù)的可靠性和容錯性。例如,當某個塊的副本失效時,Namenode會通知Datanode進行塊的復制;當Namenode出現(xiàn)故障時,可以通過備份Namenode進行自動故障轉(zhuǎn)移;當Datanode出現(xiàn)故障時,數(shù)據(jù)塊會被復制到其他Datanode上,保證數(shù)據(jù)的可靠性。
2. HDFS的操作實踐
2.1 HDFS Shell 實踐
啟動服務
列舉一個目錄的路徑
上傳
下載
查看文件內(nèi)容
刪除
2.2 HDFS Web客戶端
Hadoop也提供了 Web 方式來查看 HDFS 的情況。在瀏覽器的地址欄中輸人鏈接 http://[NameNodeIP]:50070,便會彈出下圖所示的頁面。該頁面顯示了當前集群中 HDFS 使用的大小、活躍的節(jié)點、數(shù)據(jù)塊的個數(shù)等信息。Overview 中的“l(fā)ocalhost: 9000”顯示的是HDFS的路徑。該路徑在后面通過Java API來訪問 HDFS 時會用到。如果是單機偽分布式安裝,那么NameNodeIP就是localhost。
下圖所示的內(nèi)容即為在偽分布式安裝環(huán)境下輸人 http://localhost;50070所顯示的結(jié)果。通過輸入該鏈接來查看 HDFS 的情況也常用來檢驗 Hadoop 集群是否安裝和啟動成功。
2.3HDFS Java API 實踐
在實際的 Hadoop 應用過程中,最常用的是通過 Java API 的方式來訪問和操作HDFS。Hadoop 主要是通過 Java 語言編寫的,因此上述訪問 HDFS 的FS Shell 本質(zhì)上也是通過JavAPI來實現(xiàn)的。
下面給出基于 Java API訪問 HDFS 的示例代碼,以說明如何通過 Java API來實現(xiàn)建立目錄、上傳及下載文件、刪除文件等主要操作。該示例代碼主要通過 Maven 來實現(xiàn),使用和依賴的jar 包顯示在 Maven 的 pom.xml文件的 dependencies 項中。完整的 pom.xml文件顯示如下:
在 pom.xml文件中配置好 jar 包依賴信息之后,還需要在 Hadoop 安裝文件“/etc/hadoop”路徑下的 hdfs-site.xml 文件添加配置信息,然后重啟 HDFS。相關(guān)操作如下圖所示:
根據(jù)課本提示,在Maven項目中建立一個名為HDFSSapp的Java類,嘗試通過Java API來實現(xiàn)針對HDFS的目錄創(chuàng)建、文件創(chuàng)建、上傳及下載文件、刪除文件等操作。課本示例代碼已輸入,部分代碼如下所示:
- 問題及解決方案
出現(xiàn)import時部分包錯誤
解決方案:缺少相關(guān)文件,重新下載即可。如下圖所示:
如果在下載時打斷則要:徹底刪除本地倉庫下的全部文件,重啟IEDA并reimport進行自動下載