您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)怎么進(jìn)行原h(huán)adoop中RPC通信文件上傳原理的分析,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
01 //APP2中調(diào)用的代碼
02 public static final String HDFS_PATH = "hdfs://hadoop:9000/hello";
03 public static final String DIR_PATH = "/d1000";
04 public static final String FILE_PATH = "/d1000/f10000";
05
06 public static void main(String[] args) throws Exception {
07 FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),
08 new Configuration());
09 // //創(chuàng)建文件
10 // fileSystem.mkdirs(new Path(DIR_PATH));
11 // //上傳文件
12 // FSDataOutputStream out = fileSystem.create(new Path(FILE_PATH));
13 // FileInputStream in = new FileInputStream("c:/hello.txt");
14 // IOUtils.copyBytes(in, out, 1024,true);
15 // //下載數(shù)據(jù)
16 // FSDataInputStream in1 = fileSystem.open(new Path(FILE_PATH));
17 // IOUtils.copyBytes(in1, System.out, 1024,true);
18
19 // 刪除文件夾
20 deleteFile(fileSystem);
21 }
22
23 private static void deleteFile(FileSystem fileSystem) throws IOException {
24 fileSystem.delete(new Path(FILE_PATH), true);
25
26 }
注:RPC(remote procedure call)
不同java進(jìn)程間的對象方法的調(diào)用。一方稱作服務(wù)端(server),一方稱作客戶端(client)。
server端提供對象,供客戶端調(diào)用的,被調(diào)用的對象的方法的執(zhí)行發(fā)生在server端。
RPC是hadoop框架運(yùn)行的基礎(chǔ)。
rpc通信
上圖為RPC通信調(diào)用的一系列方法最終達(dá)到把文件寫入到linux文件系統(tǒng)中的過程,但是由于hadoop中hdfs分布式文件系統(tǒng)的API封裝的特別 好,讓調(diào)用者感覺不到這個復(fù)雜的過程,對用戶或者程序而言實(shí)際是通過網(wǎng)絡(luò)來訪問文件的動作,但對用戶看來就像訪問本地磁盤一樣,充分體現(xiàn)了通透性....
綜上:對于HDFS的操作在應(yīng)用中只需掌握FileSystem,而不需要關(guān)注數(shù)據(jù)是存放在DataNode的哪個塊中(因?yàn)檫@個工作時交給NameNode的)....
注意:雖然客戶端上傳數(shù)據(jù)的時候是通過DataStreamer向NameNode申請block塊和blockid,但是數(shù)據(jù)的傳輸行為并不是通過NameNode轉(zhuǎn)的,而是與DataNode直接連接!!
15023619_vEwU.jpg(127.44 KB, 下載次數(shù): 0)
以上就是怎么進(jìn)行原h(huán)adoop中RPC通信文件上傳原理的分析,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。