實訓3 HDFS的讀寫API操作_第1頁
實訓3 HDFS的讀寫API操作_第2頁
實訓3 HDFS的讀寫API操作_第3頁
實訓3 HDFS的讀寫API操作_第4頁
實訓3 HDFS的讀寫API操作_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實訓2.3HDFS的讀寫API操作1.實訓目的通過本實訓使學生學會在本地(Windows環(huán)境)編寫Java代碼,學會用離線工程編寫HDFS的讀寫操作,并且學會打包工程上傳到服務器執(zhí)行。2.實訓內容該實訓需要每位學生在已搭建HDFS開發(fā)環(huán)境上編寫了HDFS寫、讀程序代碼;并打包項目,在集群環(huán)境上執(zhí)行該程序。3.實訓要求以小組為單元進行實訓,每小組5人,小組自協(xié)商選一位組長,由組長安排和分配實訓任務,具體參考實訓操作環(huán)節(jié)。4.準備知識(1)IDEA編輯器介紹IDEA全稱是IntelliJIDEA,是Java語言開發(fā)的集成環(huán)境(也可用于其他語言),IntelliJ在業(yè)界被公認為最好的java開發(fā)工具之一,特別是在智能代碼助手、代碼自動提示、重構、SFTP、FTP、J2EE支持、代碼審查、Ant、JUnit、CVS整合、創(chuàng)新的GUI設計等方面,發(fā)揮著巨大的作用。IDEA是JetBrains公司的產(chǎn)品,這家公司總部位于捷克共和國的首都布拉格,開發(fā)人員以嚴謹著稱的東歐程序員為主。IDEA的版本分為商業(yè)版本與開源版本,對比如圖2-50所示。圖2-50IDEA編輯器版本對比(2)Java實現(xiàn)文件讀寫在操作HDFS的讀寫操作之前,我們最好有一點Java基礎,比如說Java是怎么實現(xiàn)Java的文件讀寫的。下面列舉幾種Java的讀寫文件方式,供大家自行搜索資料學習。方式一:InputStream、OutputStream方式二(緩存字節(jié)流):BufferedInputStream、BufferedOutputStream使用方式與字節(jié)流差不多,但是效率比后者更高(推薦使用)。方式三:InputStreamReader、OutputStreamWriter方式四:BufferedReader、BufferedWriter方式五:Reader、PrintWriter建議使用第二種方式BufferedInputStream、BufferedOutputStream。5.實訓步驟(1)前提工作①需要提前安裝好Windows系統(tǒng)上的JDK,本實訓教程安裝的版本為:jdk-11.0.6。②需要將Hadoop的安裝包解壓在Windows系統(tǒng)上的某一路徑。③需要安裝好IDEA編輯器,本次實訓使用的版本為:ideaIC-2022.2.3。(2)新建Java項目①打開IDEA后,新建一個項目,點擊“NewProject”,如圖2-51所示。圖2-51項目類型選擇在彈出的窗口中,完成以下配置,如圖2-52所示。項目名稱:hadoop-projectJDK:選擇自己Windows上安裝的JDK圖2-52完成相應配置然后點擊窗口下方的“Create”,接著會新建好項目。(3)項目配置①右擊“src”,選擇“New”,點擊“Package”,建一個包,名為:“com.bigdata”,如圖2-53所示。圖2-53新建包②然后編輯項目結構,點擊“File”,點擊“ProjectStructure”按鈕,如圖2-54所示。圖2-54編輯項目結構③點擊“Libraries”,引入編寫HDFS程序相關的jar包依賴。具體操作:點擊“Libraries”→“+”→“Java”,然后找到解壓后的Hadoop安裝包,導入一個是公共依賴包,如圖2-57所示。圖2-57導入HDFS公共依賴包導入HDFS其他的相關依賴包,如圖5-58所示。圖2-58導入HDFS相關依賴包(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();}}注意:請按照實際情況修改master的主機名?。?)編寫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)打包代碼到服務器①點擊“ProjectStructure”→“Artifacts”→“+”→“JAR”→“Frommoduleswithdependencies...”,如圖2-59所示。圖2-59添加JAR②點擊之后會彈出設置界面,如圖2-60所示。圖2-60jar包配置因為我們有幾個main方法,所以我們可以不選擇“MainClass”,直接點擊“OK”即可。③因為服務器上已經(jīng)有了相應的jar包,所以需要排除掉再打包。點擊“Artifacts”→“hadoop-project:jar”→“OutputLayout”,勾選相應的jar包,點擊“-”進行移除。如圖2-61所示。圖2-61刪除多余的JAR包然后一直點擊“OK”即可。(7)打包操作①打包之前,有一點需要特別注意,如果你的服務器上的JDK版本是8,而在Windows的版本為jdk11的話,需要設置一下打包的項目語言級別才能兼容。點擊“ProjectStructure”→“Project”,在“LanguageLevel”選擇服務器上相應的語言級別,JDK8對應的是8級別,如圖2-62所示。圖2-62選擇對應的語言級別②點擊菜單欄的“Build”→“BuildArtifacts...”,在彈出的選項中,選擇“Build”即可。如圖2-64所示。圖2-64構建jar包④稍等一會,執(zhí)行完后就可以看到out目錄生成了一個jar包,如圖2-65所示。圖2-65查看生成的jar包(8)上傳服務器并執(zhí)行①使用MobaXterm工具上傳jar包到master節(jié)點的/root/jars文件夾(沒有此目錄則新建創(chuàng)建)。如圖2-所示。圖2-查看jar包上傳結果②啟動HDFS(如果啟動則無需進行)start-dfs.sh③執(zhí)行jar包(在jar包所在的路徑下,此處路徑為:/root/jars)

先執(zhí)行HDFS的寫操作代碼(如HDFS上已有/test.txt文件會報錯,請先刪除或者更換代碼里的文件名):hadoopjarhadoop-project.jarcom.bigdata.WriteFile查看是否寫內容進去,查看結果如圖2-67所示。hdfsdfs-cat/test.txt圖2-67查看寫文件結果展示執(zhí)行完后發(fā)現(xiàn)已經(jīng)可以查看到有寫入了數(shù)據(jù),然后執(zhí)行讀取HDFS數(shù)據(jù)的代碼,讀取結果如圖6-68所示。hadoopjarhadoop-project.jarcom.bigdata.ReadFile圖2-68執(zhí)行讀文件結果展示可以看到有結果輸出。6.實訓總結本次實訓主要是在IDEA上編寫HDFS讀、寫操作程序代碼,并打包在集群環(huán)境上執(zhí)行;學生通過本次實訓的學習,可以加深對HDFS的讀寫邏輯以及編程原理的認識。本實訓不用聯(lián)網(wǎng)也可以執(zhí)行HDFS的讀寫操作,此外,一樣也可以執(zhí)行Spark、機器學習等案例。本實訓非常關鍵,因為網(wǎng)絡不好或者是簡單的項目,這種傳統(tǒng)的方式也是非常簡單方便的??傆[整一個操作流程,下面總結一下同學們在操作過程中比較容易遇到的錯誤:同學們可能分不清Windows、Client、服務器、HDFS集群的相關概念,此處做一個簡單的說明以便同學們理解,后面還會遇到很多相關的概念,所以務必要理清思路。Windows:指的是你的個人電腦或者學校里的實訓室的電腦,是提供給你學習的,此電腦上應該安裝好了JDK,而且也應該先安裝好代碼編輯工具,本次實訓使用的編輯工具是IDEA。如果是使用Eclipse或者其他編輯工具,也是可以的。服務器:服務器在工作上一般指的是物理服務器或者云服務器。因為在學習的時候,如果使用此類服務器,需要投入的資金成本會很高,所以學習的時候,可以選擇其他服務器。比如說在個人電腦上安裝多臺虛擬機,通過VMWare等軟件,安裝好一臺虛擬機,然后復制多兩臺或者更多臺出來,那這些虛擬機就是所說的服務器,也可以稱之為節(jié)點

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論