hadoop入門之通過java代碼實(shí)現(xiàn)將本地文件上傳到hadoop的文件系統(tǒng)

第一步:首先搭建java的編譯環(huán)境。創(chuàng)建一個Java Project工程,名為upload。
第二步:選中所需的Jar包。
選中JRE System Library 選擇BuildPath Configure Build Path 選擇hadoop相應(yīng)的jar包。
通過Add External JARS --〉Hadoop-0.20.2下所有的jar包以及l(fā)ib下所有的jar包。OK。操作步驟如圖:
Hadoop-0.20.2下所有的jar包。

lib下的所有jar包。

第三步:創(chuàng)建class名為UploadFile

第四步:編寫代碼。
package upload;</p> <p>import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;</p> <p>
public class UploadFile {</p> <p> public static void main(String[] args) {
try {
String localStr = args[0];
String dst = args[1];
//in對應(yīng)的是本地文件系統(tǒng)的目錄
InputStream in = new BufferedInputStream(new FileInputStream(localStr));
Configuration conf = new Configuration();
//獲得hadoop系統(tǒng)的連接
FileSystem fs = FileSystem.get(URI.create(dst),conf);
//out對應(yīng)的是Hadoop文件系統(tǒng)中的目錄
OutputStream out = fs.create(new Path(dst));
IOUtils.copyBytes(in, out, 4096,true//4096是4k字節(jié)
System.out.println("success");
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
第五步:在Run Configuration里面設(shè)置兩個參數(shù),并執(zhí)行。
點(diǎn)擊 Run Configuration
在Java Application中設(shè)置 Project和MainClass
Arguments 加兩個參數(shù)/home/cui/xxxx hdf://cui:9000/xxx Applay Run
第六步:查看結(jié)果。
顯示運(yùn)行成功。
在hadoop文件系統(tǒng)中已經(jīng)看到了hadoop-0.20.2.tar.gz了。
至此文件通過代碼上傳成功!
將代碼打包成jar文件,并測試。
1. 在Run Configurations里面命名為uploadfile。
2. 右擊工程,執(zhí)行Export,選擇Runnable JAR file。點(diǎn)擊下一步。
3. 選擇剛才的configuration uploadfile,選擇導(dǎo)出路徑/home/cui。命名為upload.jar
點(diǎn)擊下一步,導(dǎo)出成功。
4. 通過java命令執(zhí)行。
5. 通過瀏覽器查看。
upload_hdfs.jar 已經(jīng)存在。
相關(guān)文章
FTP上傳文件經(jīng)常中斷或超時的解決方案[完整篇]
近日做了一個簡單的活,就是把一個phpcms建的網(wǎng)站整站遷移到另一個空間上。原本應(yīng)該是很簡單的事情,無奈卻處處碰壁,遇到各種問題。終于在今天把所有問題解決,特撰寫此文2008-10-08webstorm/phpstorm配置連接ftp快速進(jìn)行文件比較(上傳下載/同步)操作
Phpstorm除了能直接打開localhost文件之外,還可以連接FTP,除了完成正常的數(shù)據(jù)傳遞任務(wù)之外,還可以進(jìn)行本地文件與服務(wù)端文件的異同比較,同一文件自動匹配目錄上傳,下載2013-12-23- 新版CuteFTP內(nèi)置計(jì)劃任務(wù)表模塊,能夠按用戶預(yù)先指定的日期和時間,自動撥號、上傳文件并自動斷線(總之就是“全自動”)。2011-04-11
- 如果你要向蝦米音樂上傳自己的專輯,或者自己收藏喜愛的專輯,那么需要用到這個蝦米上傳工具--蝦米2014-03-14
- FTP有時候出現(xiàn)無法上傳或出現(xiàn)報(bào)錯連接不上的情況,針對這個問題,下面有個不錯的解決方法,大家可以參考下2014-01-30
手機(jī)怎么上傳文件到qq群 手機(jī)QQ群內(nèi)文件分享方法圖解
手機(jī)QQ群文件怎么上傳?手機(jī)QQ可以在群里面分享文件,視頻等,不過要怎么操作呢?下面就讓小編簡單的為大家實(shí)例講解一下,很簡單的哦2014-03-01百度云網(wǎng)盤可以上傳文件夾嗎?百度云網(wǎng)盤上傳文件夾教程
百度云網(wǎng)盤可以上傳文件夾嗎?百度網(wǎng)盤能直接上傳文件夾嗎?針對百度云網(wǎng)盤上傳文件夾的問題,本文就為大家圖文介紹百度云網(wǎng)盤上傳文件夾的步驟,有興趣的朋友們可以了解下2014-12-12愛思助手中怎么上傳SHSH文件?愛思助手上傳shsh圖文教程
蘋果設(shè)備在降級時,最關(guān)鍵的就是shsh,當(dāng)你需要使用愛思助手降級刷機(jī),愛思服務(wù)器沒有你刷機(jī)所使用的SHSH,此時你就可以使用“上傳SHSH”的功能,上傳所需要的SHSH進(jìn)行刷機(jī)2014-11-21- 迅雷后臺是查看其它網(wǎng)絡(luò)上傳數(shù)據(jù)的管理器,這樣就可以限制其它用戶上傳速度2014-04-24
Cyberduck如何使用?Cyberduck上傳文件圖文教程
Cyberduck是一款用來聯(lián)ftp服務(wù)器的軟件,容許同時打開多個窗口,于是可同時連到多個服務(wù)器工作。當(dāng)然也附書簽,支持運(yùn)行publicfile(FTP)服務(wù)器的EPFL文件列表,那么Cyber2016-07-22