HADOOP檔案系統API練習

2022-07-22 16:15:32 字數 1816 閱讀 6167

/**

* 合併本地檔案流到hdfs上

*/public static void write()

in.close();

}out.close();

} catch (ioexception e)

}//增刪改查

public static void hdfstest()

//列出根目錄下所有檔案和目錄

filestatus files = hdfs.liststatus(new path("/"));

for (filestatus file : files)

bool = hdfs.delete(new path("/user/xingluo1/"), true);

system.out.println("是否刪除成功:" + bool);

bool = hdfs.rename(new path("/user/xingluo/hebing6"),new path("/user/hebing6"));

system.out.println("是否重新命名成功:" + bool);

} catch (ioexception e)

}hadoop中用作檔案操作的主類位於org.apche.hadoop.fs軟體包中。hadoop的基本檔案操作包括常見的open,read,write,close。hadoop的檔案api是通用的,可用於hdfs之外的其他檔案系統。

filesystem類:起點類,與檔案系統互動的抽象類,具體實現子類來處理hdfs和本地檔案系統,可以通過呼叫工廠方法

filesystem.get(configuration conf)
獲取filesystem例項

configuration:保留鍵/值配置引數的特殊類。預設例項化方法是以hdfs系統 的資源配置為基礎的。可以通過以下方法得到與hdfs介面的filesystem物件

configuration conf = new configuration();

filesystem hdfs = filesystem.get(conf);

要得到本地檔案系統filesystem物件

filesystem local = filesystem.getlocal(conf);
path物件表示檔案和目錄

filestatus物件儲存檔案和目錄的元資料

filesystem.liststatus() 得到乙個目錄中檔案列表

path inputdir = new path(args[0]);

filestatus inputfiles = local.liststatus(inputdir);

fsdatainputstream訪問path讀取檔案

fsdatainputstream in = local.open(file.getpath());

byte bytes = new byte[256];

int bytesnum = 0;

while ((bytesnum = in.read(bytes)) > 0)

in.close();

fsdataoutputstream寫入資料

path hdfsdir = new path(args[1]);

fsdataoutputstream out = hdfs.create(hdfsdir);

out.write(bytes, 0, bytesnum);

out.close();

檔案系統API

1.磁碟和驅動器管理類 getlogicaldrives 獲取主機中所有的邏輯驅動器,以bit map的形式返回 getlogicaldrivestring 獲取主機所有邏輯驅動器,以驅動器根路徑字串返回 findfirstvolume 查詢主機中第乙個驅動器,返回查詢控制代碼 findnextvo...

Hadoop 檔案系統(HDFS)

磁碟傳輸速率100m s,定址時間10ms,讓定址時間是傳輸時間的1 所以塊的大小為 100 0.01s 100m s 100m 128m 在 hdfs default.xml 中搜尋dfs.blocksize,可以修改大小 檔案上傳 檢查檔案block的狀態 由上可見,狀態是健康的 啟動所有資料節...

hadoop獲取檔案系統介面

hadoop提供了許多檔案系統的介面,使用者可以使用url方案選取合適的檔案系統來實現互動。fs.localfilesystem 客戶端校驗和本地檔案系統hdfs.distributionfilesystem hadoop分布式檔案系統hdfs.hftpfilesystem 支援http通過唯讀的方...