Hadoop 04 使用java api操作

2021-07-15 04:48:56 字數 2438 閱讀 9518

1. 概述 

2. 檔案操作

2.1  上傳本地檔案到hadoop fs

2.2 在hadoop fs中新建檔案,並寫入

2.3 刪除hadoop fs上的檔案

2.4  讀取檔案

3. 目錄操作

3.1 在hadoop fs上建立目錄

3.2 刪除目錄

3.3 讀取某個目錄下的所有檔案 

hadoop中關於檔案操作類基本上全部是在org.apache.hadoop.fs包中,這些api能夠支援的操作包含:開啟檔案,讀寫檔案,刪除檔案等。

hadoop類庫中最終面向使用者提供的介面類是filesystem,該類是個抽象類,只能通過來類的get方法得到具體類。get方法存在幾個過載版本,常用的是這個:

static filesystem get(configuration conf); 

該類封裝了幾乎所有的檔案操作,例如mkdir,delete等。綜上基本上可以得出操作檔案的程式庫框架:

operator()

另外需要注意的是,如果想要執行下面的程式的話,需要將程式達成jar包,然後通過hadoop jar的形式執行,這種方法比較麻煩,另外一種方法就是安裝eclipse的hadoop外掛程式,這樣能夠很多打包的時間。

1.1 上傳本地檔案到檔案系統

* upload the local file to the hds 

* notice that the path is full like /tmp/test.c

*/public

static

void

uploadlocalfile2hdfs(string s, string d) 

throws

ioexception

1.2 建立新檔案,並寫入

* create a new file in the hdfs.

* notice that the tocreatefilepath is the full path

* and write the content to the hdfs file.

*/public

static

void

createnewhdfsfile(string tocreatefilepath, string content) 

throws

ioexception

1.3 刪除檔案

* delete the hdfs file 

* notice that the dst is the full path name

*/public

static

boolean

deletehdfsfile(string dst) 

throws

ioexception

1.4  讀取檔案

* read the hdfs file content

* notice that the dst is the full path name

*/public

static

byte

readhdfsfile(string dst) 

throws

exception

else}

2.1 建立目錄

* make a new dir in the hdfs

* * the dir may like '/tmp/testdir'

*/public

static

void

mkdir(string dir) 

throws

ioexception

2.2 刪除目錄 

* delete a dir in the hdfs

* * dir may like '/tmp/testdir'

*/public

static

void

deletedir(string dir) 

throws

ioexception

2.3 讀取某個目錄下的所有檔案 

public

static

void

listall(string dir) 

throws

ioexception

else

if(stats[i].isdirectory())

else

if(stats[i].issymlink())

}fs.close();}

/files/xuqiang/hadoopfsoperations.rar

注意的是如果是操作hdfs上檔案的話,需要將hadoop-core和common-log的jar包新增到classpath中,在本地執行,如果是mapreduce程式的話,需要將程式打成jar包,之後上傳到hdfs上,才能執行。 

hadoop使用問題

前提 環境 ubuntu 安裝hadoop 已經有一段時間 啟動的時候提示 connection reset by peer 這個檢視日誌,裡面有說 ssh裡面某個檔案的許可權太大 這個ssh裡修改下就可以 eperm operation not permitted 這個之前以為是許可權問題,後來改...

Hadoop使用例項

1.詞頻統計 1.2編寫map與reduce函式 1.3本地測試map與reduce 1.4將文字資料上傳至hdfs上 1.5用hadoop streaming提交任務 1.6檢視執行結果 1.7計算結果取回到本地 加分2.氣象資料分析 如 求每日最高溫度 2.2解壓資料集,並儲存在本地文字檔案中 ...

Hadoop使用例項

1.詞頻統計 1.2編寫map與reduce函式 1.3本地測試map與reduce 1.4將文字資料上傳至hdfs上 1.5用hadoop streaming提交任務 1.6檢視執行結果 1.7計算結果取回到本地 2.氣象資料分析 如 求每日最高溫度 2.2解壓資料集,並儲存在本地文字檔案中 2....