Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)(第3版)(微課版)課件 項目3 統(tǒng)計電影網(wǎng)站用戶影評數(shù)據(jù)_第1頁
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)(第3版)(微課版)課件 項目3 統(tǒng)計電影網(wǎng)站用戶影評數(shù)據(jù)_第2頁
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)(第3版)(微課版)課件 項目3 統(tǒng)計電影網(wǎng)站用戶影評數(shù)據(jù)_第3頁
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)(第3版)(微課版)課件 項目3 統(tǒng)計電影網(wǎng)站用戶影評數(shù)據(jù)_第4頁
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)(第3版)(微課版)課件 項目3 統(tǒng)計電影網(wǎng)站用戶影評數(shù)據(jù)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

統(tǒng)計電影網(wǎng)站用戶

影評數(shù)據(jù)項目背景在大數(shù)據(jù)時代背景下,加快發(fā)展數(shù)字經(jīng)濟并推動其與實體經(jīng)濟深度融合,是構(gòu)筑具有國際競爭力數(shù)字產(chǎn)業(yè)集群的關(guān)鍵。在此進程中,各行各業(yè)應(yīng)將保護用戶隱私置于首位,同時深入探索大數(shù)據(jù)所蘊含的價值,使之轉(zhuǎn)化為指導(dǎo)決策的寶貴資源。電影的評分次數(shù)直觀映射了影片的受歡迎程度——高頻次標志著廣泛的公眾關(guān)注和高度興趣。為了保證較高的處理效率與靈活性,本項目選用MapReduce編程以統(tǒng)計所有電影的評分和不同性別的用戶對電影的評分。在IntelliJIDEA中搭建MapReduce開發(fā)環(huán)境通過源碼初識MapReduce編程對網(wǎng)站用戶登錄次數(shù)數(shù)據(jù)根據(jù)登錄次數(shù)進行升序排序項目實踐在IntelliJIDEA中搭建MapReduce開發(fā)環(huán)境Hadoop框架是基于Java開發(fā)的,而IntelliJIDEA是一個常用的Java集成開發(fā)工具,因此通常選用IntelliJIDEA作為MapReduce的編程工具。為了能夠成功地進行MapReduce編程,本節(jié)將在本機系統(tǒng)(通常是Windows系統(tǒng))環(huán)境下安裝Java,再安裝IntelliJIDEA工具,在IntelliJIDEA中創(chuàng)建一個MapReduce工程,并配置MapReduce開發(fā)環(huán)境。在Windows下安裝Java雙擊JDK安裝包jdk-8u281-windows-x64.exe,打開“JavaSE開發(fā)工具包8-安裝”對話框安裝JDK,如下圖。單擊“下一步”按鈕開始安裝。在Windows下安裝Java單擊“更改”按鈕,選擇JDK的安裝目錄,用戶可以根據(jù)本機的磁盤空間自定義安裝目錄。單擊“下一步”按鈕,等待JDK安裝完成。在Windows下安裝Java安裝完JDK后,將彈出一個提示對話框,提示可更改JRE的安裝目錄。用戶可以根據(jù)本機的磁盤空間自定義JRE的安裝目錄。(JDK和JRE的安裝目錄最好在同一個目錄下)單擊“下一步”按鈕進行JRE的安裝。JRE安裝完成后單擊“關(guān)閉”按鈕即可完成JDK的安裝。在Windows下安裝Java安裝完JDK后,需要在Windows系統(tǒng)中配置環(huán)境變量,只有配置了環(huán)境變量,JDK編譯環(huán)境才可以正常使用。右擊“此電腦”,在彈出的快捷菜單中選擇“屬性”命令,在打開的“系統(tǒng)”對話框中選擇“高級系統(tǒng)設(shè)置”,打開“系統(tǒng)屬性”對話框,單擊“環(huán)境變量”按鈕,打開“環(huán)境變量”對話框,如右圖。在Windows下安裝Java單擊“系統(tǒng)變量”組中的“新建”按鈕,新建一個變量,“變量名”為“JAVA_HOME”,“變量值”為JDK實際的安裝目錄,然后單擊“確定”按鈕即可。在Windows下安裝Java在

“環(huán)境變量”對話框中,選擇“系統(tǒng)變量”組中的“Path”變量,單擊“編輯”按鈕。在彈出的“編輯環(huán)境變量”對話框中,單擊右側(cè)的“新建”按鈕,輸入“%JAVA_HOME%\bin”,再次單擊“新建”按鈕,輸入“%JAVA_HOME%\jre\bin”。單擊“確定”按鈕完成Path變量的編輯,返回“環(huán)境變量”對話框。在Windows下安裝Java在

“環(huán)境變量”對話框中,單擊“系統(tǒng)變量”組中的“新建”按鈕,新建一個變量,“變量名”為“ClassPath”,“變量值”為“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”,然后單擊“確定”按鈕即可。在Windows下安裝Java測試環(huán)境變量是否配置成功。在個人計算機的“開始”菜單的搜索文本框中輸入“cmd”關(guān)鍵字,單擊“命令提示符”,打開“命令提示符”界面,輸入“java-version”并按Enter鍵,若出現(xiàn)下圖的信息,則說明環(huán)境變量配置成功。下載與安裝IntelliJIDEA在IntelliJIDEA官網(wǎng)中下載IntelliJIDEA的安裝包,安裝包名稱為ideaIC-2023.2.2.exe(Community版)。雙擊下載好的安裝包,在彈出的安裝向?qū)υ捒蛑袉螕簟癗ext”按鈕,并設(shè)置IntelliJIDEA的安裝目錄,用戶可根據(jù)本機的磁盤空間自定義IntelliJIDEA的安裝目錄,然后單擊“Next”按鈕。下載與安裝IntelliJIDEA在彈出的對話框中,按需進行勾選,然后單擊“Next”按鈕?!癈reateDesktopShortcut”表示是否創(chuàng)建桌面快捷方式?!癠pdatePATHVariable(restartneeded)”表示是否將IntelliJIDEA的環(huán)境變量添加至Windows系統(tǒng)的環(huán)境變量中。下載與安裝IntelliJIDEA在彈出的“ChooseStartMenuFolder”對話框中,選擇開始菜單文件夾,保持默認設(shè)置,即“JetBrains”,然后單擊“Install”按鈕。安裝完將彈出右圖的對話框,取消勾選“RunIntelliJIDEACommunityEdition”,之后單擊“Finish”按鈕即可完成IntelliJIDEA的安裝。啟動IntelliJIDEA雙擊桌面生成的IntelliJIDEA工具圖標,或從個人計算機的“開始”菜單中啟動IntelliJIDEA。啟動過程中將詢問是否導(dǎo)入以前的設(shè)定,選擇“Donotimportsettings”,表示不導(dǎo)入,然后單擊“OK”按鈕。啟動IntelliJIDEA進入IntelliJIDEA的歡迎界面后,選擇“Customize”設(shè)置IntelliJIDEA設(shè)計界面的主題,可以選擇白色或黑色背景??紤]代碼和結(jié)果展示的清晰度,選擇“LightwithLightHeader”,如右圖。創(chuàng)建MapReduce工程在IDEA主頁面中單擊“NewProject”選項,將彈出“NewProject”對話框,在左側(cè)列表欄中選擇“MavenArchetype”。在右側(cè)填寫工程的名稱并選擇工程保存的位置,選擇JDK的版本為“1.8”,選擇“Archetype”為“org.apache.maven.archetypes:maven-archetype-quickstart”。創(chuàng)建MapReduce工程單擊上圖的“AdvancedSettings”,設(shè)置工程屬性,然后單擊“Create”按鈕完成創(chuàng)建?!癎roupId”是項目組織唯一的標識符,實際對應(yīng)Java的包的結(jié)構(gòu)。“ArtifactId”是項目唯一的標識符,實際對應(yīng)項目的名稱。“Version”表示項目的版本,1.0是版本號,SNAPSHOT代表不穩(wěn)定、尚處于開發(fā)中。創(chuàng)建MapReduce工程MapReduce工程創(chuàng)建完成后,在IntelliJIDEA的主界面中可以查看工程的目錄結(jié)構(gòu),如下圖。配置MapReduce環(huán)境在IDEA項目工程中,選擇使用“Alt+\”組合鍵打開“File”,之后選擇“ProjectStructure”,也可以直接使用“Ctrl+Alt+Shift+S”組合鍵打開

“ProjectStructure”。配置MapReduce環(huán)境單擊“ProjectStructure”設(shè)置中左側(cè)的“Libraries”選項,再單擊右側(cè)的“+”,選擇“Java”選項添加Jar包。此處也可通過“ProjectStructure”設(shè)置中左側(cè)的“Modules”選項添加Jar包。配置MapReduce環(huán)境在彈出的的對話框中選擇要添加的

Jar

包,這里需要將

Hadoop

的/share/hadoop目錄下的全部Jar包導(dǎo)入。注意,Hadoop安裝包需要先在本地解壓。配置MapReduce環(huán)境全部Jar包導(dǎo)入后,單擊“Apply”按鈕,再單擊“OK”按鈕,即可完成MapReduce環(huán)境配置。在IntelliJIDEA中搭建MapReduce開發(fā)環(huán)境通過源碼初識MapReduce編程對網(wǎng)站用戶登錄次數(shù)數(shù)據(jù)根據(jù)登錄次數(shù)進行升序排序項目實踐通過源碼初識MapReduce編程進行MapReduce編程前,需要先對MapReduce的核心模塊Mapper與Reducer的執(zhí)行流程有一定的認識。Hadoop官方提供了一些示例源碼,十分適合初學(xué)者學(xué)習(xí)。在項目1中已經(jīng)介紹了MapReduce簡介及其作業(yè)執(zhí)行流程,本節(jié)將進一步以具體例子介紹MapReduce的執(zhí)行流程,再通過Hadoop官方示例源碼WordCount(詞頻統(tǒng)計)講解MapReduce的編程方法。了解MapReduce實現(xiàn)詞頻統(tǒng)計的執(zhí)行流程以詞頻統(tǒng)計為例,進一步講解MapReduce各階段的執(zhí)行流程。輸入的單詞與詞頻統(tǒng)計輸出的內(nèi)容如下表。輸入輸出HelloWorldOurWorldHelloBigDataRealBigDataHelloHadoopGreatHadoopHadoopMapReduceBigData 2Great 1Hadoop 3Hello 3MapReduce 1Our 1Real 1World 2Map階段的處理過程鍵值對是一種數(shù)據(jù)格式,每個鍵都有一個對應(yīng)的值。輸入文件的每一行記錄經(jīng)過映射處理后輸出為若干組鍵值對。在<Hello,1>中,Hello是鍵,1是值,因為需要統(tǒng)計單詞的頻次,所以1代表每個單詞的初始頻次。Map階段生成鍵值對后,提交中間輸出結(jié)果,進入Reduce階段。Map階段的處理過程在Map階段輸出與Reduce階段輸入之間有一個Shuffle/Sort過程。在Shuffle/Sort過程中先是對Map階段輸出的鍵值對按照鍵進行排序,之后對排序后的數(shù)據(jù)將鍵相同的鍵值對匯集起來,并將鍵相同的值存入同一列表中。讀懂官方提供的WordCount源碼WordCount源碼Driver模塊Mapper模塊Reducer模塊程序的入口執(zhí)行Map任務(wù)執(zhí)行Reduce任務(wù)應(yīng)用程序DriverMapReduce程序的入口,進行MapReduce程序的一些初始化設(shè)置。初始化相關(guān)Hadoop配置新建Job對象并設(shè)置主類設(shè)置Mapper、Combiner、Reducer設(shè)置輸出鍵值對格式設(shè)置輸入與輸出路徑提交任務(wù)等待運行Map階段與Reduce階段并行計算過程Mapper模塊Reducer模塊map()方法reduce方法代碼實現(xiàn)要與實際業(yè)務(wù)邏輯掛鉤,由開發(fā)者自行編寫了解詞頻統(tǒng)計WordCount源碼了解Driver類的具體實現(xiàn)流程了解Mapper模塊的實現(xiàn)流程了解Reducer模型的實現(xiàn)流程在IntelliJIDEA中搭建MapReduce開發(fā)環(huán)境通過源碼初識MapReduce編程對網(wǎng)站用戶登錄次數(shù)數(shù)據(jù)根據(jù)登錄次數(shù)進行升序排序項目實踐網(wǎng)站用戶登錄次數(shù)排序源碼解析項目2中借助官方源碼WordCount程序?qū)崿F(xiàn)了網(wǎng)站用戶登錄次數(shù)的統(tǒng)計,并將輸出結(jié)果保存至HDFS。但用戶登錄次數(shù)是根據(jù)用戶的郵件地址進行升序排序的,不能直觀地看出用戶登錄次數(shù)大致的分布情況。為了更利于分析,可根據(jù)登錄次數(shù)進行升序排序,并將排序后的結(jié)果存儲至HDFS。網(wǎng)站用戶登錄次數(shù)排序源碼解析如何實現(xiàn)網(wǎng)站用戶登錄次數(shù)排序源碼解析Driver模塊MapReduce程序的入口,進行MapReduce程序的一些初始化設(shè)置。初始化Hadoop配置新建Job對象設(shè)置Mapper、Reducer設(shè)置輸出鍵值對格式設(shè)置輸入輸出路徑提交任務(wù)等待運行Mapper與Reducer模塊邏輯實現(xiàn)Mapper模塊Reducer模塊Begin

自定義MyMap類繼承Mapper類;

覆寫map()方法;

讀取用戶訪問日志文件;

指定制表符“\t”為分隔符;

將鍵與值的位置進行交換;EndBegin

自定義MyReduce類繼承Reducer類;

覆寫reduce()方法;

讀取Mapper類的輸出鍵值對;

將鍵與值的位置進行交換;

輸出<郵件地址,登錄次數(shù)>;End在IntelliJIDEA中搭建MapReduce開發(fā)環(huán)境通過源碼初識MapReduce編程對網(wǎng)站用戶登錄次數(shù)數(shù)據(jù)根據(jù)登錄次數(shù)進行升序排序項目實踐創(chuàng)建并配置工程項目電影的評分次數(shù)直觀映射了影片的受歡迎程度——高頻次標志著廣泛的公眾關(guān)注和高度興趣。男性、女性觀眾在觀影偏好上可能會有潛在差異,若給用戶推薦電影,則可以針對不同性別的觀眾的觀影偏好給用戶推薦相關(guān)電影。為了保證較高的處理效率與靈活性,可選用MapReduce編程以統(tǒng)計所有電影的評分和不同性別的用戶對電影的評分。目標與流程在IntelliJIDEA開發(fā)軟件中創(chuàng)建并配置一個工程項目,搭建MapReduce開發(fā)環(huán)境。創(chuàng)建Maven項目,配置依賴文件添加Hadoop集群配置文件core-site.xmlhdfs-site.xml統(tǒng)計所有電影的評分次數(shù)統(tǒng)計所有電影的評分次數(shù)評分次數(shù)(RateNum)電影

ID及類型(MovieID、MoiveType)統(tǒng)計所有電影的評分次數(shù)movies.datratings.dat12reducejoin()表連接mapjoin()數(shù)據(jù)傾斜統(tǒng)計所有電影的評分次數(shù)連接movies.da

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論