更新時(shí)間:2022年07月12日15時(shí)32分 來(lái)源:傳智教育 瀏覽次數(shù):
由于Hadoop是使用Java語(yǔ)言編寫(xiě)的,因此可以使用Java API操作Hadoop文件系統(tǒng)。HDFS Shell本質(zhì)上就是對(duì)Java API的應(yīng)用,通過(guò)編程的形式操作HDFS,其核心是使用HDFS提供的Java API構(gòu)造一個(gè)訪(fǎng)問(wèn)客戶(hù)端對(duì)象,然后通過(guò)客戶(hù)端對(duì)象對(duì)HDFS上的文件進(jìn)行操作(增、刪、改、查)。本節(jié)對(duì)HDFS提供的Java API進(jìn)行詳細(xì)講解。
Hadoop整合了眾多文件系統(tǒng),HDFS只是這個(gè)文件系統(tǒng)的一個(gè)實(shí)例。HDFS Java API的核心包如下所示。
.org.apache.hadoop.fs.FileSystem:它是通用文件系統(tǒng)的抽象基類(lèi),可以被分布式文件系統(tǒng)繼承,它具有許多實(shí)現(xiàn)類(lèi)。如LocalFileSystem、DistributedFileSystem、FtpFileSystem等。
.org.apache.hadoop.fs.FileStatus:它用于向客戶(hù)端展示系統(tǒng)中文件和目錄的元數(shù)據(jù),具體包含文件大小、塊大小、副本信息、修改時(shí)間等。
.org.apache.hadoop.fs.FSDataInputStream:文件輸入流,用于讀取Hadoop文件。
.org.apache.hadoop.fs.FSDataOutputStream:文件輸出流,用于寫(xiě)入Hadoop文件。
.org.apache.hadoop.conf.Configuration:訪(fǎng)問(wèn)配置項(xiàng),默認(rèn)配置參數(shù)在core-site.xml中,用戶(hù)可以添加相應(yīng)的配置參數(shù)。
.org.apache.hadoop.fs.Path:用于表示Hadoop文件系統(tǒng)中的一個(gè)文件或者一個(gè)目錄的路徑。
在Java中操作HDFS,首先需要?jiǎng)?chuàng)建一個(gè)客戶(hù)端實(shí)例,主要涉及以下類(lèi):
.Configuration:該類(lèi)的對(duì)象封裝了客戶(hù)端或者服務(wù)器的配置,每個(gè)配置選項(xiàng)是一個(gè)鍵對(duì)值,通常情況下,Configuration實(shí)例會(huì)自動(dòng)加載HDFS的配置文件core-site.xml,從中獲取Hadoop集群的配置信息。
.FileSystem:該類(lèi)的對(duì)象是一個(gè)文件系統(tǒng)對(duì)象,通過(guò)該對(duì)象的一些方法可以對(duì)文件進(jìn)行操作,常用方法如表3-2所示;
表3-2 FileSystem常用方法
小提示:Hadoop API非常龐大,讀者可以通過(guò)Hadoop官方文檔自行查閱學(xué)習(xí),地址如下:http://hadoop.apache.org/docs/stable/api/index.html。
Python數(shù)據(jù)分析:數(shù)據(jù)分析報(bào)告撰寫(xiě)流程
2022-07-08基于數(shù)據(jù)源的“臟”數(shù)據(jù)分類(lèi)
2022-07-07大數(shù)據(jù)培訓(xùn):數(shù)據(jù)分析師的職業(yè)要求(下)
2022-07-07大數(shù)據(jù)培訓(xùn):數(shù)據(jù)分析師的職業(yè)要求(上)
2022-07-06Python跟誰(shuí)學(xué)比較好?-傳智教育Python培訓(xùn)
2022-07-05關(guān)于MySQL的30條優(yōu)化技巧【超實(shí)用】
2022-07-04北京校區(qū)