Hadoop大數(shù)據(jù)平臺構建與應用(工作手冊式)(微課版) 案例 3.1 Hadoop Java API讀取序列化日志文件_第1頁
Hadoop大數(shù)據(jù)平臺構建與應用(工作手冊式)(微課版) 案例 3.1 Hadoop Java API讀取序列化日志文件_第2頁
Hadoop大數(shù)據(jù)平臺構建與應用(工作手冊式)(微課版) 案例 3.1 Hadoop Java API讀取序列化日志文件_第3頁
Hadoop大數(shù)據(jù)平臺構建與應用(工作手冊式)(微課版) 案例 3.1 Hadoop Java API讀取序列化日志文件_第4頁
Hadoop大數(shù)據(jù)平臺構建與應用(工作手冊式)(微課版) 案例 3.1 Hadoop Java API讀取序列化日志文件_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

HadoopJavaAPI讀取序列化日志文件【任務描述】現(xiàn)有一份2020年用戶登錄某網站的序列化文件,本小節(jié)將使用HadoopJavaAPI的方式讀取序列化文件,并將讀取的數(shù)據(jù)保存到本地文件系統(tǒng)中,查看文件內容是否是1月和2月的用戶登錄信息?!救蝿辗治觥勘拘」?jié)將進行如下操作,完成序列化文件的讀取。在Windows系統(tǒng)中配置Java開發(fā)環(huán)境,即安裝JDK、設置環(huán)境變量。下載與安裝IntelliJIDEA。創(chuàng)建Java工程。讀取序列化文件并保存到本地?!救蝿諏嵤颗渲瞄_發(fā)環(huán)境JDK是Java語言的軟件開發(fā)工具包,主要用于各種電子設備上的Java應用程序。JDK是整個Java開發(fā)的核心,它包含了Java的運行環(huán)境(JVM與Java系統(tǒng)類庫)以及Java工具。安裝JDK8Java提供了標準的軟件開發(fā)工具箱JavaDevelopmentKit(JDK)。利用JDK可以開發(fā)Java桌面應用程序和低端的服務器應用程序,目前較為常用的版本為JDK1.8。安裝jdk-8u301-windows-x64.exe,具體步驟如下。(1)打開jdk-8u301-windows-x64.exe,點擊“下一步”,如REF_Ref97648688\h圖31所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s11打開JDK安裝包(2)在JDK“定制安裝”對話框中選擇安裝位置,然后點擊“下一步”,如REF_Ref97648729\h圖32所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s12選擇JDK安裝位置(3)完成JDK安裝后,安裝程序將提示Java運行環(huán)境(JRE)的安裝,在“目標文件夾”對話框中點擊“更改”按鈕修改JRE的安裝位置,然后點擊“下一步”,如REF_Ref97648798\h圖33所示。提示“已成功安裝”即可點擊“關閉”按鈕,如REF_Ref97648831\h圖34所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s13選擇JRE安裝位置圖STYLEREF1\s3SEQ圖\*ARABIC\s14完成JDK安裝設置環(huán)境變量環(huán)境變量是指在操作系統(tǒng)中用來指定操作系統(tǒng)運行環(huán)境的一些參數(shù),包含了一個或者多個應用程序所將使用到的信息。例如,Windows和DOS操作系統(tǒng)中的path環(huán)境變量,當要求系統(tǒng)運行一個程序而沒有告知程序所在的完整路徑時,系統(tǒng)除了在當前目錄下尋找此程序外,還應到path中指定的路徑尋找。用戶通過設置環(huán)境變量,可以更好地運行進程。在Windows系統(tǒng)中設置環(huán)境變量,具體步驟如下。(1)右鍵單擊桌面的“此電腦”圖標,選擇“屬性”,如REF_Ref97648917\h圖35所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s15打開此電腦屬性(2)在“設置”界面中找到相關設置的“高級系統(tǒng)設置”,如REF_Ref97648958\h圖36所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s16高級系統(tǒng)設置(3)在彈出的“系統(tǒng)屬性”對話框中,單擊“環(huán)境變量”按鈕,在彈出的“環(huán)境變量”對話框中單擊新建,在“變量名”一欄中輸入“JAVA_HOME”,在“變量值”一欄中輸入JDK的安裝路徑,如REF_Ref97649041\h圖37所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s17配置系統(tǒng)變量JAVA_HOME(4)在“系統(tǒng)變量”中找到變量“Path”并雙擊進行編輯,點擊“新建”按鈕,輸入“%JAVA_HOME%\bin”,點擊確定,如REF_Ref97649499\h圖38所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s18編輯系統(tǒng)環(huán)境Path(5)在命令提示符中輸入javac,返回信息不提示報錯,說明環(huán)境變量配置正確,如REF_Ref97649726\h圖39所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s19javac驗證配置(6)參考第3步,新建一個系統(tǒng)變量,在“變量名”一欄中輸入“HADOOP_HOME”,在“變量值”一欄中輸入Hadoop3.1.4安裝包解壓后的路徑,如REF_Ref121489885\h圖310所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s110配置系統(tǒng)變量HADOOP_HOME(7)參考第4步,在“系統(tǒng)變量”的變量“Path”中新添一項變量,內容為“%HADOOP_HOME%\bin”,點擊確定。下載與安裝IntelliJIDEA在Community版,社區(qū)版是免費開源的。下載與安裝(1)雙擊IDEA安裝包,進入安裝向導界面,單擊“Next”按鈕。彈出如REF_Ref121474882\h圖311所示的界面,設置好IDEA的安裝目錄后,單擊“Next”按鈕。圖STYLEREF1\s3SEQ圖\*ARABIC\s111設置IDEA安裝目錄(2)彈出如REF_Ref121474870\h圖312所示的界面,單擊“Finish”按鈕完成安裝。圖STYLEREF1\s3SEQ圖\*ARABIC\s112安裝完成(3)雙擊桌面生成的IntelliJIDEA圖標啟動IntelliJIDEA,或在“開始”菜單中,依次單擊“JetBrains”→“IntelliJIDEACommunityEdition2018.3.6”啟動IntelliJIDEA。第一次啟動IntelliJIDEA時會詢問是否導入以前的設定,選擇不導入,如REF_Ref121474861\h圖313所示,單擊“OK”按鈕進入下一步。圖STYLEREF1\s3SEQ圖\*ARABIC\s113詢問是否導入以前的設定(4)進入UI主題的選擇,如REF_Ref121474849\h圖314所示,可以選擇白色或是黑色背景,并單擊左下角的“SkipRemainingandSetDefaults”按鈕,跳過其他設置,采用默認設置即可。圖STYLEREF1\s3SEQ圖\*ARABIC\s114選擇UI主題(5)設置完成,出現(xiàn)如REF_Ref121474837\h圖315所示的界面。圖STYLEREF1\s3SEQ圖\*ARABIC\s115IntelliJIDEA歡迎界面創(chuàng)建Maven工程啟動IDEA,進入如REF_Ref121474837\h圖315所示的歡迎界面,單擊“CreateNewProjects”,在“NewProject”對話框中選擇“Maven”,將“ProjectSDK”設置為3.1.1所配置的JDK8,如REF_Ref97650131\h圖316所示,點擊“Next”。圖STYLEREF1\s3SEQ圖\*ARABIC\s116創(chuàng)建Maven項目在彈出的頁面中,輸入項目名稱為“Hadoop_Java_API”,如REF_Ref97650138\h圖317所示,完成后單擊“Finish”按鈕。圖STYLEREF1\s3SEQ圖\*ARABIC\s117對項目進行命名創(chuàng)建完成的Maven工程的菜單面板,如REF_Ref121491073\h圖318所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s118工程的菜單面板讀取序列化文件單擊右鍵如REF_Ref121491073\h圖318所示的“java”,選擇“New”,單擊“Package”,如REF_Ref97650566\h圖319所示,在彈出的頁面中輸入“demo”,單擊Enter鍵,完成名為“demo”的Package的創(chuàng)建,如REF_Ref97651396\h圖320所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s119新建Package圖STYLEREF1\s3SEQ圖\*ARABIC\s120為包命名單擊右鍵“demo”,選擇“New”,單擊“JavaClass”,如REF_Ref97651560\h圖321所示,在彈出的窗口輸入“ReadSequenceFile”,單擊Enter鍵,完成Java文件的創(chuàng)建,如REF_Ref97651634\h圖322所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s121新建JavaClass圖STYLEREF1\s3SEQ圖\*ARABIC\s122為Java文件命名HadoopJavaAPI提供了讀取HDFS上的文件的方法,也可以讀取序列化文件,不同于普通文件的讀取方法,讀取序列化文件需要獲取到SequenceFile.Reader對象。讀取序列化文件,將讀取的數(shù)據(jù)寫入到本地文件系統(tǒng)的janfeb.txt文件中,代碼如REF_Ref484435806\h代碼31所示。代碼STYLEREF1\s3SEQ代碼清單\*ARABIC\s11讀取序列化文件packagedemo;importjava.io.BufferedWriter;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStreamWriter;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.SequenceFile;importorg.apache.hadoop.io.Text;publicclassReadSequenceFile{publicstaticvoidmain(String[]args)throwsIOException{//獲取配置Configurationconf=newConfiguration();conf.set("fs.defaultFS","master:8020");//獲取文件系統(tǒng)FileSystemfs=FileSystem.get(conf);//獲取SequenceFile.Reader對象SequenceFile.Readerreader=newSequenceFile.Reader(fs,newPath("/data/sFile"),conf);//獲取序列化文件中使用的鍵值類型Textkey=newText();Textvalue=newText();BufferedWriterout=newBufferedWriter(newOutputStreamWriter(newFileOutputStream("D:\\data\\janfeb.txt",true)));while(reader.next(key,value)){out.write(key.toString()+"\t"+value.toString()+"\r\n");}out.close();reader.close();}}執(zhí)行命令“hdfsdfs-put/opt/sFile/data”將Linux系統(tǒng)目錄/opt下的序列化文件sFile上傳至HDFS系統(tǒng)data目錄下,然后在ReadSequenceFile.java頁面單擊右鍵,選擇“Run'ReadSequenceFile.main()'”運行ReadSequenceFile.java程序,如REF_Ref484435925\h圖323所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s123運行程序運行完成后,查看D:\\data\\janfeb.txt文件,序列化文件讀取結果,如REF_Ref97651767\h圖324所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s124序列化文件讀取結果讀取序列化文件的結果文件查看janfeb.txt的文件內容,可以發(fā)現(xiàn)文件中的數(shù)據(jù)都是1月和2月的數(shù)據(jù),這說明該序列化文件確實是1月和2月的用戶登錄信息數(shù)據(jù)?!卷椖靠偨Y】本項目實現(xiàn)了Hiv

溫馨提示

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

最新文檔

評論

0/150

提交評論