文章目錄
前言
一、項(xiàng)目大體流程
二、詳細(xì)步驟
1.在idea里面創(chuàng)建空項(xiàng)目(小白也能看懂)
2.導(dǎo)入所需的jar包
2.輸入代碼后就可以實(shí)現(xiàn)了
總結(jié)
前言
? ? ? ? 跟著白哥學(xué)Java,今天就來分享一下Java如何上傳文件到hdfs上面,
提示:以下是一點(diǎn)見解
一、項(xiàng)目大體流程
? ? ? ? 我們想要上傳到hdfs,首先就得知道hdfs是什么東西:
? ? ? ? 本質(zhì):HDFS的中文翻譯是Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System)。它本質(zhì)還是程序,主要還是以樹狀目錄結(jié)構(gòu)來管理文件(和linux類似,/表示根路徑),且可以運(yùn)行在多個(gè)節(jié)點(diǎn)上(即分布式)。
? ? ? ? 解決的問題:存儲(chǔ)海量離線數(shù)據(jù)(如TB、PB、ZB級(jí)別的數(shù)據(jù)),并且保證數(shù)據(jù)高可用,支持高并發(fā)訪問。注:不適合將大量的小文件存到HDFS。(主要原因:HDFS的NameNode進(jìn)程在內(nèi)存中存儲(chǔ)文件的元數(shù)據(jù),故文件越多,消耗的內(nèi)存就越大。大量的小文件,耗盡NameNode節(jié)點(diǎn)的內(nèi)存,而實(shí)際存的文件總量卻很小,HDFS存海量數(shù)據(jù)的優(yōu)勢(shì)沒有發(fā)揮出來)
? ? ? ? 架構(gòu):HDFS的架構(gòu)如下,其中在Linux端的詳細(xì)部署就不一一贅述了
?我們的項(xiàng)目構(gòu)成如下:
二、詳細(xì)步驟
1.在idea里面創(chuàng)建空項(xiàng)目(小白也能看懂)
圖解(示例):
?
?注意:一般idea會(huì)自帶一個(gè)jdk是20以上的,如果版本不和心意,也可以點(diǎn)下載,選擇合適的jdk
?
?
?
?
?好的,這樣子我們就得到一個(gè)空項(xiàng)目了
2.導(dǎo)入所需的jar包
????????新建一個(gè)項(xiàng)目后,將HDFS相關(guān)的jar包引入到項(xiàng)目中,目的是調(diào)用HDFS提供的相關(guān)的類、方法。我們現(xiàn)在將所需要的jar依賴導(dǎo)入進(jìn)來,接下來要進(jìn)行導(dǎo)包:
2.輸入代碼后就可以實(shí)現(xiàn)了
public static void main(String[] args) throws IOException {
if(args.length == 0){
System.out.println("創(chuàng)建失敗,請(qǐng)傳入一個(gè)路徑參數(shù)指定要讀取的文件");
return;
}
String feilePath = args[0];
System.out.println("傳入的名字是:"+feilePath);
//1.創(chuàng)建詞匯表Configuration類型的對(duì)象
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://20210322045-master:9000");
FileSystem fs = FileSystem.get(conf);
FSDataInputStream fsDataInputStream = fs.open(new Path(feilePath));
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fsDataInputStream));
//讀取文件第一行字符串,如果返回null,表明已經(jīng)讀取到文件的末尾
String nextLine = bufferedReader.readLine();
//如果沒有讀取到末尾,則繼續(xù)讀取
while (null != nextLine){
//將讀取到的數(shù)據(jù)輸出到控制臺(tái)
System.out.println(nextLine);
nextLine = bufferedReader.readLine();
}
fs.close();
}
圖解(示例):
該處使用的url網(wǎng)絡(luò)請(qǐng)求的數(shù)據(jù)。文章來源:http://www.zghlxwxcb.cn/news/detail-692975.html
總結(jié)
提示:這里對(duì)文章進(jìn)行總結(jié):
例如:以上就是今天要講的內(nèi)容,本文僅僅簡(jiǎn)單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-692975.html
到了這里,關(guān)于記錄Java讀取hdfs上的文件全過程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!