版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)訓(xùn)2.3HDFS的讀寫API操作1.實(shí)訓(xùn)目的通過本實(shí)訓(xùn)使學(xué)生學(xué)會在本地(Windows環(huán)境)編寫Java代碼,學(xué)會用離線工程編寫HDFS的讀寫操作,并且學(xué)會打包工程上傳到服務(wù)器執(zhí)行。2.實(shí)訓(xùn)內(nèi)容該實(shí)訓(xùn)需要每位學(xué)生在已搭建HDFS開發(fā)環(huán)境上編寫了HDFS寫、讀程序代碼;并打包項(xiàng)目,在集群環(huán)境上執(zhí)行該程序。3.實(shí)訓(xùn)要求以小組為單元進(jìn)行實(shí)訓(xùn),每小組5人,小組自協(xié)商選一位組長,由組長安排和分配實(shí)訓(xùn)任務(wù),具體參考實(shí)訓(xùn)操作環(huán)節(jié)。4.準(zhǔn)備知識(1)IDEA編輯器介紹IDEA全稱是IntelliJIDEA,是Java語言開發(fā)的集成環(huán)境(也可用于其他語言),IntelliJ在業(yè)界被公認(rèn)為最好的java開發(fā)工具之一,特別是在智能代碼助手、代碼自動提示、重構(gòu)、SFTP、FTP、J2EE支持、代碼審查、Ant、JUnit、CVS整合、創(chuàng)新的GUI設(shè)計(jì)等方面,發(fā)揮著巨大的作用。IDEA是JetBrains公司的產(chǎn)品,這家公司總部位于捷克共和國的首都布拉格,開發(fā)人員以嚴(yán)謹(jǐn)著稱的東歐程序員為主。IDEA的版本分為商業(yè)版本與開源版本,對比如圖2-50所示。圖2-50IDEA編輯器版本對比(2)Java實(shí)現(xiàn)文件讀寫在操作HDFS的讀寫操作之前,我們最好有一點(diǎn)Java基礎(chǔ),比如說Java是怎么實(shí)現(xiàn)Java的文件讀寫的。下面列舉幾種Java的讀寫文件方式,供大家自行搜索資料學(xué)習(xí)。方式一:InputStream、OutputStream方式二(緩存字節(jié)流):BufferedInputStream、BufferedOutputStream使用方式與字節(jié)流差不多,但是效率比后者更高(推薦使用)。方式三:InputStreamReader、OutputStreamWriter方式四:BufferedReader、BufferedWriter方式五:Reader、PrintWriter建議使用第二種方式BufferedInputStream、BufferedOutputStream。5.實(shí)訓(xùn)步驟(1)前提工作①需要提前安裝好Windows系統(tǒng)上的JDK,本實(shí)訓(xùn)教程安裝的版本為:jdk-11.0.6。②需要將Hadoop的安裝包解壓在Windows系統(tǒng)上的某一路徑。③需要安裝好IDEA編輯器,本次實(shí)訓(xùn)使用的版本為:ideaIC-2022.2.3。(2)新建Java項(xiàng)目①打開IDEA后,新建一個項(xiàng)目,點(diǎn)擊“NewProject”,如圖2-51所示。圖2-51項(xiàng)目類型選擇在彈出的窗口中,完成以下配置,如圖2-52所示。項(xiàng)目名稱:hadoop-projectJDK:選擇自己Windows上安裝的JDK圖2-52完成相應(yīng)配置然后點(diǎn)擊窗口下方的“Create”,接著會新建好項(xiàng)目。(3)項(xiàng)目配置①右擊“src”,選擇“New”,點(diǎn)擊“Package”,建一個包,名為:“com.bigdata”,如圖2-53所示。圖2-53新建包②然后編輯項(xiàng)目結(jié)構(gòu),點(diǎn)擊“File”,點(diǎn)擊“ProjectStructure”按鈕,如圖2-54所示。圖2-54編輯項(xiàng)目結(jié)構(gòu)③點(diǎn)擊“Libraries”,引入編寫HDFS程序相關(guān)的jar包依賴。具體操作:點(diǎn)擊“Libraries”→“+”→“Java”,然后找到解壓后的Hadoop安裝包,導(dǎo)入一個是公共依賴包,如圖2-57所示。圖2-57導(dǎo)入HDFS公共依賴包導(dǎo)入HDFS其他的相關(guān)依賴包,如圖5-58所示。圖2-58導(dǎo)入HDFS相關(guān)依賴包(4)編寫HDFS代碼在com.bigdata包里新建一個WriteFile類,編寫WriteFile類代碼,代碼如下:packagecom.bigdata;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FSDataOutputStream;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;importjava.io.IOException;import.URI;publicclassWriteFile{publicstaticvoidmain(String[]args)throwsIOException{Stringcontent="Hello,bigdata!";Stringdest="hdfs://master:8020/test.txt";Configurationconfiguration=newConfiguration();FileSystemfileSystem=FileSystem.get(URI.create(dest),configuration);FSDataOutputStreamout=fileSystem.create(newPath(dest));out.write(content.getBytes("UTF-8"));out.close();}}注意:請按照實(shí)際情況修改master的主機(jī)名!(5)編寫HDFS讀操作代碼在com.bigdata包里新建一個ReadFile類,編寫ReadFile類,代碼如下:packagecom.bigdata;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FSDataInputStream;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;importjava.io.*;import.URI;publicclassReadFile{publicstaticvoidmain(String[]args)throwsIOException{Stringdest="hdfs://master:8020/test.txt";Configurationconfiguration=newConfiguration();FileSystemfileSystem=FileSystem.get(URI.create(dest),configuration);FSDataInputStreamin=fileSystem.open(newPath(dest));BufferedReaderbufferedReader=newBufferedReader(newInputStreamReader(in));Stringline=null;while((line=bufferedReader.readLine())!=null){System.out.println(line);}in.close();}}(6)打包代碼到服務(wù)器①點(diǎn)擊“ProjectStructure”→“Artifacts”→“+”→“JAR”→“Frommoduleswithdependencies...”,如圖2-59所示。圖2-59添加JAR②點(diǎn)擊之后會彈出設(shè)置界面,如圖2-60所示。圖2-60jar包配置因?yàn)槲覀冇袔讉€main方法,所以我們可以不選擇“MainClass”,直接點(diǎn)擊“OK”即可。③因?yàn)榉?wù)器上已經(jīng)有了相應(yīng)的jar包,所以需要排除掉再打包。點(diǎn)擊“Artifacts”→“hadoop-project:jar”→“OutputLayout”,勾選相應(yīng)的jar包,點(diǎn)擊“-”進(jìn)行移除。如圖2-61所示。圖2-61刪除多余的JAR包然后一直點(diǎn)擊“OK”即可。(7)打包操作①打包之前,有一點(diǎn)需要特別注意,如果你的服務(wù)器上的JDK版本是8,而在Windows的版本為jdk11的話,需要設(shè)置一下打包的項(xiàng)目語言級別才能兼容。點(diǎn)擊“ProjectStructure”→“Project”,在“LanguageLevel”選擇服務(wù)器上相應(yīng)的語言級別,JDK8對應(yīng)的是8級別,如圖2-62所示。圖2-62選擇對應(yīng)的語言級別②點(diǎn)擊菜單欄的“Build”→“BuildArtifacts...”,在彈出的選項(xiàng)中,選擇“Build”即可。如圖2-64所示。圖2-64構(gòu)建jar包④稍等一會,執(zhí)行完后就可以看到out目錄生成了一個jar包,如圖2-65所示。圖2-65查看生成的jar包(8)上傳服務(wù)器并執(zhí)行①使用MobaXterm工具上傳jar包到master節(jié)點(diǎn)的/root/jars文件夾(沒有此目錄則新建創(chuàng)建)。如圖2-所示。圖2-查看jar包上傳結(jié)果②啟動HDFS(如果啟動則無需進(jìn)行)start-dfs.sh③執(zhí)行jar包(在jar包所在的路徑下,此處路徑為:/root/jars)
先執(zhí)行HDFS的寫操作代碼(如HDFS上已有/test.txt文件會報(bào)錯,請先刪除或者更換代碼里的文件名):hadoopjarhadoop-project.jarcom.bigdata.WriteFile查看是否寫內(nèi)容進(jìn)去,查看結(jié)果如圖2-67所示。hdfsdfs-cat/test.txt圖2-67查看寫文件結(jié)果展示執(zhí)行完后發(fā)現(xiàn)已經(jīng)可以查看到有寫入了數(shù)據(jù),然后執(zhí)行讀取HDFS數(shù)據(jù)的代碼,讀取結(jié)果如圖6-68所示。hadoopjarhadoop-project.jarcom.bigdata.ReadFile圖2-68執(zhí)行讀文件結(jié)果展示可以看到有結(jié)果輸出。6.實(shí)訓(xùn)總結(jié)本次實(shí)訓(xùn)主要是在IDEA上編寫HDFS讀、寫操作程序代碼,并打包在集群環(huán)境上執(zhí)行;學(xué)生通過本次實(shí)訓(xùn)的學(xué)習(xí),可以加深對HDFS的讀寫邏輯以及編程原理的認(rèn)識。本實(shí)訓(xùn)不用聯(lián)網(wǎng)也可以執(zhí)行HDFS的讀寫操作,此外,一樣也可以執(zhí)行Spark、機(jī)器學(xué)習(xí)等案例。本實(shí)訓(xùn)非常關(guān)鍵,因?yàn)榫W(wǎng)絡(luò)不好或者是簡單的項(xiàng)目,這種傳統(tǒng)的方式也是非常簡單方便的??傆[整一個操作流程,下面總結(jié)一下同學(xué)們在操作過程中比較容易遇到的錯誤:同學(xué)們可能分不清Windows、Client、服務(wù)器、HDFS集群的相關(guān)概念,此處做一個簡單的說明以便同學(xué)們理解,后面還會遇到很多相關(guān)的概念,所以務(wù)必要理清思路。Windows:指的是你的個人電腦或者學(xué)校里的實(shí)訓(xùn)室的電腦,是提供給你學(xué)習(xí)的,此電腦上應(yīng)該安裝好了JDK,而且也應(yīng)該先安裝好代碼編輯工具,本次實(shí)訓(xùn)使用的編輯工具是IDEA。如果是使用Eclipse或者其他編輯工具,也是可以的。服務(wù)器:服務(wù)器在工作上一般指的是物理服務(wù)器或者云服務(wù)器。因?yàn)樵趯W(xué)習(xí)的時(shí)候,如果使用此類服務(wù)器,需要投入的資金成本會很高,所以學(xué)習(xí)的時(shí)候,可以選擇其他服務(wù)器。比如說在個人電腦上安裝多臺虛擬機(jī),通過VMWare等軟件,安裝好一臺虛擬機(jī),然后復(fù)制多兩臺或者更多臺出來,那這些虛擬機(jī)就是所說的服務(wù)器,也可以稱之為節(jié)點(diǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)書九上四五頁題目及答案
- 教輔資料與課件
- 數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ)要點(diǎn)解析
- 越南房產(chǎn)制度
- 試塊養(yǎng)護(hù)制度
- 2025年空港醫(yī)院筆試題庫答案
- 2025年百色事業(yè)單位招聘考試及答案
- 2025年村支書省考筆試題目及答案
- 2025年沁水縣事業(yè)單位考試答案
- 2025年少先隊(duì)輔導(dǎo)員說課筆試及答案
- 2026中國電建招聘面試題及答案
- GB/T 36132-2025綠色工廠評價(jià)通則
- 2025年溫州肯恩三位一體筆試英語真題及答案
- 人教版五年級上冊數(shù)學(xué)第七單元《植樹問題》應(yīng)用題期末專項(xiàng)訓(xùn)練(含答案)
- 機(jī)關(guān)人員公務(wù)出差審批單
- 報(bào)紙刊登通告合同范本
- 2025年信用報(bào)告征信報(bào)告詳版?zhèn)€人版模板樣板(可編輯)
- 2025年五上課外閱讀題庫及答案
- 湖南鐵道職業(yè)技術(shù)學(xué)院2025年單招職業(yè)技能測試題
- 果農(nóng)水果出售合同范本
- 2025年事業(yè)單位聯(lián)考A類職測真題及答案
評論
0/150
提交評論