Hadoop權威指南:大數據的存儲與分析》—3.4 Hadoop文件系統

      網友投稿 1111 2025-03-31

      3.4? Hadoop文件系統


      Hadoop有一個抽象的文件系統概念,HDFS只是其中的一個實現。Java抽象類 org.apache.hadoop.fs.FileSystem定義了Hadoop 中一個文件系統的客戶端接口,并且該抽象類有幾個具體實現,其中和Hadoop緊密相關的見表3-1。

      表3-1.??Hadoop文件系統

      文件系統

      URI方案

      Java實現(都在org.apache.

      hadoop包中)

      描述

      Local

      file

      fs.LocalFileSystem

      使用客戶端校驗和的本地磁盤文件系統。使用RawLocalFileSystem表示無校驗和的本地磁盤文件系統。詳情參見5.1.2節

      HDFS

      hdfs

      hdfs.DistributedFileSystem

      《Hadoop權威指南:大數據的存儲與分析》—3.4 Hadoop文件系統

      Hadoop 的分布式文件系統。將HDFS設計成與MapReduce結合使用,可以實現高性能

      文件系統

      URI方案

      Java實現(都在org.apache.

      hadoop包中)

      描述

      WebHDFS

      Webhdfs

      Hdfs.web.WebHdfsFileSystem

      基于HTTP的文件系統,提供對HDFS的認證讀/寫訪問。詳情參見3.4節相關內容

      Secure WebHDFS

      swebhdfs

      hdfs.web.SWebHdfsFileSystem

      WebHDFS的HTTPS版本

      HAR

      har

      fs.HarFileSystem

      一個構建在其他文件系統之上用于文件存檔的文件系統。Hadoop存檔文件系統通常用于將HDFS中的多個文件打包成一個存檔文件,以減少namenode內存的使用。使用hadoop的achive命令來創建HAR 文件

      View

      viewfs

      viewfs.ViewFileSystem

      針對其他Hadoop文件系統的客戶端掛載表。通常用于為聯邦namenode創建掛載點,詳情參見3.2.4節

      FTP

      ftp

      fs.ftp.FTPFileSystem

      由FTP 服務器支持的文件系統

      S3

      S3a

      fs.s3a.S3AFileSystem

      由Amazon S3 支持的文件系統。替代老版本的s3n(S3 原生)實現

      Azure

      wasb

      fs.azure.NativeAzure

      FileSystem

      由Microsoft ? Azure支持的文件系統

      Swift

      swift

      fs.swift.snative.

      SwiftNativeFileSystem

      由OpenStack ? Swift支持的文件系統

      Hadoop 對文件系統提供了許多接口,它一般使用URI 方案來選取合適的文件系統實例進行交互。舉例來說,我們在前一小節中遇到的文件系統命令行解釋器可以操作所有的Hadoop 文件系統命令。要想列出本地文件系統根目錄下的文件,可以輸入以下命令:

      % hadoop fs -ls file:///

      盡管運行的MapReduce程序可以訪問任何文件系統(有時也很方便),但在處理大數據集時,建議你還是選擇一個有數據本地優化的分布式文件系統,如HDFS(參見2.4節)。

      接口

      Hadoop是用Java寫的,通過Java API可以調用大部分Hadoop文件系統的交互操作。例如,文件系統的命令解釋器就是一個Java 應用,它使用Java 的FileSystem類來提供文件系統操作。其他一些文件系統接口也將在本小節中做簡單介紹。這些接口通常與HDFS一同使用,因為Hadoop中的其他文件系統一般都有訪問基本文件系統的工具(對于FTP,有FTP客戶端;對于S3,有S3工具,等等),但它們大多數都能用于任何Hadoop 文件系統。

      Hadoop以Java API的形式提供文件系統訪問接口,非Java開發的應用訪問HDFS會很不方便。由WebHDFS協議提供的HTTP REST API則使得其他語言開發的應用能夠更方便地與HDFS交互。注意,HTTP接口比原生的Java客戶端要慢,所以不到萬不得已,盡量不要用它來傳輸特大數據。

      通過HTTP來訪問HDFS有兩種方法:直接訪問,HDFS守護進程直接服務于來自客戶端的HTTP請求;通過代理(一個或多個)訪問,客戶端通常使用DistributedFileSystem API訪問HDFS。這兩種方法如圖3-1所示。兩者都使用了WebHDFS協議。

      圖3-1. 通過HTTP直接訪問HDFS或者通過多個HDFS代理訪問HDFS

      在第一種情況中,namenode和datanode內嵌的web服務器作為WebHDFS的端節點運行。(由于dfs.webhdfs.enabled被設置為true,WebHDFS默認是啟用狀態。)文件元數據操作由namenode管理,文件讀(寫)操作首先被發往namenode,由namenode發送一個HTTP重定向至某個客戶端,指示以流方式傳輸文件數據的目的或源datanode。

      第二種方法依靠一個或者多個獨立代理服務器通過HTTP訪問HDFS。(由于代理服務是無狀態的,因此可以運行在標準的負載均衡器之后。)所有到集群的網絡通信都需要經過代理,因此客戶端從來不直接訪問namenode或datanode。使用代理服務器后可以使用更嚴格的防火墻策略和帶寬限制策略。通常情況下都通過代理服務器,實現在不同數據中心中部署的Hadoop集群之間的數據傳輸,或從外部網絡訪問云端運行的Hadoop集群。

      HttpFS 代理提供和WebHDFS相同的HTTP(和HTTPS)接口, 這樣客戶端能夠通過webhdfs(swebhdfs) URI訪問這兩類接口。HttpFS 代理的啟動獨立于namenode和datanode的守護進程,使用httpfs.sh腳本,默認在一個不同的端口上監聽(端口號14000)。

      Hadoop提供了一個名為libhdfs的C語言庫,該語言庫是Java FileSystem接口類的一個鏡像(它被寫成訪問HDFS的C語言庫,但其實它可以訪問任何一個Hadoop文件系統)。它使用Java原生接口(JNI, Java Native Interface)調用Java 文件系統客戶端。同樣還有一個libwebhdfs庫,該庫使用了前述章節描述的WebHDFS接口。

      這個C語言API 與Java的API非常相似,但它的開發滯后于Java API,因此目前一些新的特性可能還不支持。可以在Apache Hapdoop二進制壓縮發行包的include目錄中找到頭文件hdfs.h。

      Apache Hapdoop二進制壓縮包自帶預先編譯好的libhdfs二進制編碼,支持64位Linux。但對于其他平臺,需要按照源代碼樹頂層的BUILDING.txt指南自行編譯。

      使用Hadoop的NFSv3網關將HDFS掛載為本地客戶端的文件系統是可行的。然后你可以使用Unix實用程序(如ls和cat) 與該文件系統交互,上傳文件,通過任意一種編程語言調用POSIX 庫來訪問文件系統。由于HDFS僅能以追加模式寫文件,因此可以往文件末尾添加數據,但不能隨機修改文件。

      關于如何配置和運行NFS網關,以及如何從客戶端連接網關,可以參考Hadoop相關文檔資料。

      用戶空間文件系統(FUSE, Filesystem in Userspace,)允許將用戶空間實現的文件系統作為Unix文件系統進行集成。通過使用Hadoop的Fuse-DFS功能模塊,HDFS(或任何一個Hadoop 文件系統)均可以作為一個標準的本地文件系統進行掛載。Fuse-DFS是用C語言實現的,使用libhdfs作為訪問HDFS的接口。在寫操作時,Hadoop NFS網關對于掛載HDFS來說是更健壯的解決方案,相比Fuse-DFS而言應優先選擇。

      大數據 Hadoop

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格復制文字的方法(怎么復制excel表格里面的文字)
      下一篇:excel2016怎么更換主題顏色?
      相關文章
      亚洲日韩VA无码中文字幕| 亚洲日韩看片无码电影| 亚洲精品无码成人片久久不卡| 亚洲第一成年人网站| 亚洲精品国产精品乱码不卡√| 亚洲精品老司机在线观看| 亚洲第一永久AV网站久久精品男人的天堂AV | 国产美女亚洲精品久久久综合| 亚洲午夜成人精品电影在线观看| 亚洲精品第一国产综合精品99| 亚洲AV伊人久久青青草原| 亚洲国产精品嫩草影院久久 | 亚洲美免无码中文字幕在线| 亚洲黄色免费电影| 亚洲国产精品午夜电影| 亚洲国产美女精品久久| 亚洲一级大黄大色毛片| 在线亚洲高清揄拍自拍一品区| 亚洲自偷自偷在线成人网站传媒| 亚洲欧洲日产国码久在线| 亚洲AV无码AV男人的天堂不卡| 成a人片亚洲日本久久| 亚洲午夜精品一级在线播放放 | 亚洲中文字幕一二三四区苍井空 | 亚洲国产精品自在自线观看| 成人亚洲国产精品久久| 久久久久亚洲精品中文字幕| 亚洲精品自产拍在线观看| 午夜影视日本亚洲欧洲精品一区| 亚洲黄色网址在线观看| 亚洲jizzjizz在线播放久| 亚洲精品无码av片| 亚洲成a人片在线观看久| 在线亚洲人成电影网站色www| 亚洲大尺度无码无码专区| 亚洲视频免费在线播放| 国产色在线|亚洲| 亚洲性无码AV中文字幕| 亚洲Av无码乱码在线播放| 亚洲色偷拍另类无码专区| 亚洲国产精品一区|