/**
* 合併本地檔案流到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通過唯讀的方...