2022高職 大數(shù)據(jù)技術(shù)與應(yīng)用 任務(wù)書1(賽項(xiàng)賽題)_第1頁
2022高職 大數(shù)據(jù)技術(shù)與應(yīng)用 任務(wù)書1(賽項(xiàng)賽題)_第2頁
2022高職 大數(shù)據(jù)技術(shù)與應(yīng)用 任務(wù)書1(賽項(xiàng)賽題)_第3頁
2022高職 大數(shù)據(jù)技術(shù)與應(yīng)用 任務(wù)書1(賽項(xiàng)賽題)_第4頁
2022高職 大數(shù)據(jù)技術(shù)與應(yīng)用 任務(wù)書1(賽項(xiàng)賽題)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022年全國職業(yè)院校技能大賽

高職組大數(shù)據(jù)技術(shù)與應(yīng)用”

賽項(xiàng)賽卷(1卷)任務(wù)書參賽隊(duì)編號(hào): 背景描述大數(shù)據(jù)時(shí)代,電商經(jīng)營模式發(fā)生很大改變。在傳統(tǒng)運(yùn)營模式中,缺乏數(shù)據(jù)積累,人們?cè)谧龀鲆恍Q策行為過程中,更多是憑借個(gè)人經(jīng)驗(yàn)和直覺,發(fā)展路徑比較自我封閉。而大數(shù)據(jù)時(shí)代,為人們提供一種全新的思路,通過大量的數(shù)據(jù)分析得出的結(jié)果將更加現(xiàn)實(shí)和準(zhǔn)確。商家可以對(duì)客戶的消費(fèi)行為信息數(shù)據(jù)進(jìn)行收集和整理,比如消費(fèi)者購買產(chǎn)品的花費(fèi)、選擇產(chǎn)品的渠道、偏好產(chǎn)品的類型、產(chǎn)品回購周期、購買產(chǎn)品的目的、消費(fèi)者家庭背景、工作和生活環(huán)境、個(gè)人消費(fèi)觀和價(jià)值觀等。通過數(shù)據(jù)追蹤,知道顧客從哪兒來,是看了某網(wǎng)站投放的廣告還是通過朋友推薦鏈接,是新訪客還是老用戶,喜歡瀏覽什么產(chǎn)品,購物車有無商品,是否清空,還有每一筆交易記錄,精準(zhǔn)鎖定一定年齡、收入、對(duì)產(chǎn)品有興趣的顧客,對(duì)顧客進(jìn)行分組、標(biāo)簽化,通過不同標(biāo)簽組合運(yùn)用,獲得不同目標(biāo)群體,以此開展精準(zhǔn)推送。因數(shù)據(jù)驅(qū)動(dòng)的零售新時(shí)代已經(jīng)到來,沒有大數(shù)據(jù),我們無法為消費(fèi)者提供這些體驗(yàn),為完成電商的大數(shù)據(jù)分析工作,你所在的小組將應(yīng)用大數(shù)據(jù)技術(shù),以Scala作為整個(gè)項(xiàng)目的基礎(chǔ)開發(fā)語言,基于大數(shù)據(jù)平臺(tái)綜合利用Spark、Flink、Vue.js等技術(shù),對(duì)數(shù)據(jù)進(jìn)行處理、分析及可視化呈現(xiàn),你們作為該小組的技術(shù)人員,請(qǐng)按照下面任務(wù)完成本次工作。環(huán)境說明:服務(wù)端登錄地址詳見各模塊服務(wù)端說明。補(bǔ)充說明宿主機(jī)可通過Asbru工具或SSH客戶端進(jìn)行SSH訪問;相關(guān)軟件安裝包在宿主機(jī)的/opt目錄下,青選擇對(duì)應(yīng)的安裝包進(jìn)行安裝,用不到的可忽略;所有模塊中應(yīng)用命令必須采用絕對(duì)路徑;從本地倉庫中拉取鏡像,并啟動(dòng)3個(gè)容器進(jìn)入Master節(jié)點(diǎn)的方式為dockerexec-itmaster/bin/bash進(jìn)入Slavel節(jié)點(diǎn)的方式為dockerexec-itslavel/bin/bash進(jìn)入Slave2節(jié)點(diǎn)的方式為dockerexec-itslave2/bin/bash同時(shí)將/opt目錄下的所有安裝包移動(dòng)到3個(gè)容器節(jié)點(diǎn)中。任務(wù)一:Hadoop完全分布式安裝配置本環(huán)節(jié)需要使用root用戶完成相關(guān)配置,安裝Hadoop需要配置前置環(huán)境。命令中要求使用絕對(duì)路徑,具體要求如下:1、 將Master節(jié)點(diǎn)JDK安裝包解壓并移動(dòng)到/usr/java路徑(若路徑不存在,則需新建),將命令復(fù)制并粘貼至對(duì)應(yīng)報(bào)告中;2、 修改/root/profile文件,設(shè)置JDK環(huán)境變量,配置完畢后在Master節(jié)點(diǎn)分別執(zhí)行“java”和“javac”命令,將命令行執(zhí)行結(jié)果分別截圖并粘貼至對(duì)應(yīng)報(bào)告中;3、 請(qǐng)完成host相關(guān)配置,將三個(gè)節(jié)點(diǎn)分別命名為master、slavel、slave2,并做免密登錄,使用絕對(duì)路徑從Master節(jié)點(diǎn)復(fù)制JDK解壓后的安裝文件到Slave1、Slave2節(jié)點(diǎn),并配置相關(guān)環(huán)境變量,將全部復(fù)制命令復(fù)制并粘貼至對(duì)應(yīng)報(bào)告中;4、 在Master節(jié)點(diǎn)將Hadoop解壓到/opt目錄下,并將解壓包分發(fā)至Slave1、Slave2節(jié)點(diǎn)中,配置好相關(guān)環(huán)境,初始化Hadoop環(huán)境namenode,將初始化命令及初始化結(jié)果復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;5、 啟動(dòng)Hadoop集群,查看Master節(jié)點(diǎn)jps進(jìn)程,將查看結(jié)果復(fù)制粘貼至對(duì)應(yīng)報(bào)告中。任務(wù)二:SparkonYarn安裝配置本環(huán)節(jié)需要使用root用戶完成相關(guān)配置,已安裝Hadoop及需要配置前置環(huán)境,具體要求如下:1、 將scala包解壓到/usr/路徑,配置環(huán)境變量使其生效,將完整命令復(fù)制粘貼至對(duì)應(yīng)報(bào)告中(若已安裝,則可跳過);2、 配置/root/profile文件,設(shè)置Spark環(huán)境變量,并使環(huán)境變量生效將環(huán)境變量配置內(nèi)容復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;3、 完成onyarn相關(guān)配置,使用sparkonyarn的模式提交$SPARK_HOME/examples/jars/spark-examples_2.11-2.1.1.jar運(yùn)行的主類為org.apache.spark.examples.SparkPi,將運(yùn)行結(jié)果粘貼至對(duì)應(yīng)報(bào)告中。任務(wù)三:FlinkonYarn安裝配置本環(huán)節(jié)需要使用root用戶完成相關(guān)配置,已安裝Hadoop及需要配置前置環(huán)境,具體要求如下:1、 將Flink包解壓到路徑/opt目錄下,將完整命令復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;2、 修改/root/profile文件,設(shè)置Flink環(huán)境變量,并使環(huán)境變量生效將環(huán)境變量配置內(nèi)容復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;3、 開啟Hadoop集群,在yarn上以perjob模式(即Job分離模式,不采用Session模式)運(yùn)行$FLINK_HOME/examples/batch/WordCount.jar,將運(yùn)行結(jié)果最后10行復(fù)制粘貼至對(duì)應(yīng)報(bào)告中。示例:flinkrun-myarn-cluster-p2-yjm2G-ytm2G$FLINK_HOME/examples/batch/WordCount.jar環(huán)境說明:服務(wù)端登錄地址詳見各模塊服務(wù)端說明。補(bǔ)充說明各主機(jī)可通過Asbru工具或SSH客戶端進(jìn)行SSH訪問;Master節(jié)點(diǎn)MySQL數(shù)據(jù)庫用戶名/密碼:root/123456(已配置遠(yuǎn)程連接);Hive的元數(shù)據(jù)啟動(dòng)命令為:nohuphive--servicemetastore&Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/Spark任務(wù)在Yarn上用Client運(yùn)行,方便觀察日志。任務(wù)一:數(shù)據(jù)抽取編寫Scala工程代碼,將MySQL的shtd_store庫中表CUSTOMER、NATION、PART、PARTSUPP、REGION、SUPPLIER的數(shù)據(jù)全量抽取到Hive的ods庫中對(duì)應(yīng)表customer,nation,part,partsupp,region,supplier中,將表ORDERS、LINEITEM的數(shù)據(jù)增量抽取到Hive的ods庫中對(duì)應(yīng)表ORDERS,LINEITEM中。1、 抽取shtd_store庫中CUSTOMER的全量數(shù)據(jù)進(jìn)入Hive的ods庫中表customer。字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)行showpartitionsods.customer命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;2、 抽取shtd_store庫中NATION的全量數(shù)據(jù)進(jìn)入Hive的ods庫中表nation。字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)行showpartitionsods.nation命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;3、 抽取shtd_store庫中PART的全量數(shù)據(jù)進(jìn)入Hive的ods庫中表part。字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)行showpartitionsods.part命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;4、 抽取shtd_store庫中PARTSUPP的全量數(shù)據(jù)進(jìn)入Hive的ods庫中表partsupp。字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)行showpartitionsods.partsupp命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;5、 抽取shtd_store庫中REGION的全量數(shù)據(jù)進(jìn)入Hive的ods庫中表region,字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)行showpartitionsods.region命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;6、 抽取shtd_store庫中SUPPLIER的全量數(shù)據(jù)進(jìn)入Hive的ods庫中表supplier,字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)行showpartitionsods.supplier命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;7、 抽取shtd_store庫中ORDERS的增量數(shù)據(jù)進(jìn)入Hive的ods庫中表orders,要求只取某年某月某日及之后的數(shù)據(jù)(包括某年某月某日),根據(jù)ORDERS表中ORDERKEY作為增量字段(提示:對(duì)比MySQL和Hive中的表的ORDERKEY大小),只將新增的數(shù)據(jù)抽入,字段類型不變,同時(shí)添加動(dòng)態(tài)分區(qū),分區(qū)字段類型為String,且值為ORDERDATE字段的內(nèi)容(ORDERDATE的格式為yyyy-MM-dd,分區(qū)字段格式為yyyyMMdd),。并在hivecli執(zhí)行selectcount(distinet(dealdate))fromods.orders命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;8、 抽取shtd_store庫中LINEITEM的增量數(shù)據(jù)進(jìn)入Hive的ods庫中表lineitem,根據(jù)LINEITEM表中orderkey作為增量字段,只將新增的數(shù)據(jù)抽入,字段類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)行showpartitionsods.lineitem命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中。任務(wù)二:數(shù)據(jù)清洗編寫Scala工程代碼,將ods庫中相應(yīng)表數(shù)據(jù)全量抽取到Hive的dwd庫中對(duì)應(yīng)表中。表中有涉及到timestamp類型的,均要求按照yyyy-MM-ddHH:mm:ss,不記錄毫秒數(shù),若原數(shù)據(jù)中只有年月日,則在時(shí)分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-ddHH:mm:ss。1、 將ods庫中customer表數(shù)據(jù)抽取到dwd庫中dim_customer的分區(qū)表,分區(qū)字段為etldate且值與ods庫的相對(duì)應(yīng)表該值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填寫“user1",dwd_insert_time、dwd_modify_time均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在hivecli中按照cust_key順序排序,查詢dim_customer前1條數(shù)據(jù),將結(jié)果內(nèi)容復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;2、 將ods庫中part表數(shù)據(jù)抽取到dwd庫中dim_part的分區(qū)表,分區(qū)字段為etldate且值與ods庫的相對(duì)應(yīng)表該值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填寫“user1",dwd_insert_time、dwd_modify_time均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在hivecli中按照part_key順序排序,查詢dim_part前1條數(shù)據(jù),將結(jié)果內(nèi)容復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;3、 將ods庫中nation表數(shù)據(jù)抽取到dwd庫中dim_nation的分區(qū)表,分區(qū)字段為etldate且值與ods庫的相對(duì)應(yīng)表該值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填寫“user1",dwd_insert_time、dwd_modify_time均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在hivecli中按照nation_key順序排序,查詢dim_nation前1條數(shù)據(jù),將結(jié)果內(nèi)容復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;4、 將ods庫中region表數(shù)據(jù)抽取到dwd庫中dim_region的分區(qū)表,分區(qū)字段為etldate且值與ods庫的相對(duì)應(yīng)表該值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填寫“userl",dwd_insert_time、dwd_modify_time均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在hivecli中按照region_key順序排序,查詢dim_region表前1條數(shù)據(jù),將結(jié)果內(nèi)容復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;5、 將ods庫中orders表數(shù)據(jù)抽取到dwd庫中fact_orders的分區(qū)表,分區(qū)字段為etldate且值與ods庫的相對(duì)應(yīng)表該值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填寫“user1",dwd_insert_time、dwd_modify_time均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在執(zhí)行hivecli執(zhí)行selectcount(distinct(dealdate))fromdwd.fact_orders命令,將結(jié)果內(nèi)容復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;6、 待任務(wù)5完成以后,需刪除ods.orders中的分區(qū),僅保留最近的三個(gè)分區(qū)。并在hivecli執(zhí)行showpartitionsods.orders命令,將結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;7、 將ods庫中l(wèi)ineitem表數(shù)據(jù)抽取到dwd庫中fact_lineitem的分區(qū)表,分區(qū)字段為etldate且值與ods庫的相對(duì)應(yīng)表該值相等,抽取的條件為根據(jù)orderkey和partkey進(jìn)行去重,并添力口dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填寫“user1",dwd_insert_time、dwd_modify_time均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在hivecli執(zhí)行showpartitionsdwd.fact_lineitem命令,將結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中。任務(wù)三:指標(biāo)計(jì)算1、編寫Scala工程代碼,根據(jù)dwd層表統(tǒng)計(jì)每個(gè)地區(qū)、每個(gè)國家、每個(gè)月下單的數(shù)量和下單的總金額,存入MySQL數(shù)據(jù)庫shtd_store的nationeverymonth表(表結(jié)構(gòu)如下)中,然后在Linux的MySQL命令行中根據(jù)訂單總數(shù)、消費(fèi)總額、國家表主鍵三列均逆序排序的方式,查詢出前5條,將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;

字段類型中文含義備注nationkeyint國家表主鍵nationnametext國家名稱regionkeyint地區(qū)表主鍵regionnametext地區(qū)名稱totalconsumptiondouble消費(fèi)總額當(dāng)月消費(fèi)訂單總額totalorderint訂單總數(shù)當(dāng)月訂單總額yearint年訂單產(chǎn)生的年monthint月訂單產(chǎn)生的月2、請(qǐng)根據(jù)dwd層表計(jì)算出某年每個(gè)國家的平均消費(fèi)額和所有國家平均消費(fèi)額相比較結(jié)果“高/低/相同”,存入MySQL數(shù)據(jù)庫shtd_store的nationavgcmp表(表結(jié)構(gòu)如下)中,然后在Linux的MySQL命令行中根據(jù)訂單總數(shù)、消費(fèi)總額、國家表主鍵三列均逆序排序的方式,查詢出前5條,將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;字段類型中文含義備注nationkeyint國家表主鍵nationnametext國家名稱nationavgconsumptiondouble該國家內(nèi)客單價(jià)該國家已購買產(chǎn)品的人均消費(fèi)額allnationavgconsumptiondouble所有國家內(nèi)客單價(jià)所有國家已購買的產(chǎn)品的人均消費(fèi)額comparisonstring比較結(jié)果國家內(nèi)人均和所有國家人均相比結(jié)果有:咼/低/相同3、 編寫Scala工程代碼,根據(jù)dwd層表統(tǒng)計(jì)連續(xù)兩個(gè)月下單并且下單金額保持增長的用戶,訂單發(fā)生時(shí)間限制為大于等于某年,存入MySQL數(shù)據(jù)庫shtd_store的usercontinueorder表(表結(jié)構(gòu)如下)中。然后在Linux的MySQL命令行中根據(jù)訂單總數(shù)、消費(fèi)總額、客戶主鍵三列均逆序排序的方式,查詢出前5條,將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中。字段類型中文含義備注custkeyint客戶主鍵custnametext客戶名稱monthtext月記錄當(dāng)前月和下月,用下劃線'_'相連例如:202201_202202表示2022年1月到2月用戶連續(xù)下單。totalconsumptiondouble消費(fèi)總額連續(xù)兩月的訂單總額totalorderint訂單總數(shù)連續(xù)兩月的訂單總數(shù)模塊C:數(shù)據(jù)挖掘(10分)環(huán)境說明:服務(wù)端登錄地址詳見各模塊服務(wù)端說明。補(bǔ)充說明各主機(jī)可通過Asbru工具或SSH客戶端進(jìn)行SSH訪問;Master節(jié)點(diǎn)MySQL數(shù)據(jù)庫用戶名/密碼:root/123456(已配置遠(yuǎn)程連接);Hive的元數(shù)據(jù)啟動(dòng)命令為:nohuphive--servicemetastore&Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/Spark任務(wù)在Yarn上用Client運(yùn)行,方便觀察日志。該模塊均使用Scala編寫,利用Spark相關(guān)庫完成。任務(wù)一:特征工程1、 根據(jù)dwd庫中fact_orders表,將其轉(zhuǎn)換為以下類型矩陣:其中A表示用戶A,B表示用戶B,矩陣中的【0,1】值為1表示A用戶與B用戶之間購買了1個(gè)相同的零件,0表示A用戶與B用戶之間沒有購買過相同的零件。將矩陣保存為txt文件格式并存儲(chǔ)在HDFS上,使用命令查看文件前2行,將執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;oeoo0 0111O1 0 0 10 1001?11102、對(duì)dwd庫中dim_part獲取partkey、mfgr、brand、size、retailprice五個(gè)字段并進(jìn)行數(shù)據(jù)預(yù)處理,再進(jìn)行歸一化并保存至dwd.fact_part_machine_data中,對(duì)制造商與品牌字段進(jìn)行one-hot編碼處理(將制造商與品牌的值轉(zhuǎn)換成列名添加至表尾部,若該零部件屬于該品牌則置為1,否則置為0),并按照partkey,size進(jìn)行順序排序,然后在Hivecli中執(zhí)行命令descdwd.fact_part_machine_data中查詢出結(jié)果,將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中。字段類型中文含義備注partkeydouble零件keymfgrdouble制造商branddouble品牌sizedouble型號(hào)retailpricedouble價(jià)格Manufacturer#1int制造商1若屬于該制造商,則內(nèi)容為1否則為0Manufacturer#2int制造商2若屬于該制造商,則內(nèi)容為1否則為0Brand#1int品牌1若屬于該品牌,則內(nèi)容為1否則為0Brand#2int品牌2若屬于該品牌,則內(nèi)容為1否則為0任務(wù)二:推薦系統(tǒng)1、根據(jù)任務(wù)一的結(jié)果,獲取與該用戶相似度(矩陣內(nèi)的值最高)最高的前10個(gè)用戶,并結(jié)合hive中dwd層的fact_orders表、fact_lineitem表、fact_part_machine_data表,獲取到這10位用戶已購買過的零部件,并剔除該用戶已購買的零部件,并通過計(jì)算用戶已購買產(chǎn)品與該數(shù)據(jù)集中余弦相似度累加,輸出前5零部件key作為推薦使用。將輸出結(jié)果保存至MySQL的part_machine表中。然后在Linux的MySQL命令行中查詢出前5條數(shù)據(jù),將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中。環(huán)境說明:服務(wù)端登錄地址詳見各模塊服務(wù)端說明。補(bǔ)充說明各主機(jī)可通過Asbru工具或SSH客戶端進(jìn)行SSH訪問;請(qǐng)先檢查ZooKeeper、Kafka、Redis端口看是否已啟動(dòng),若未啟動(dòng)則各啟動(dòng)命令如下:ZK啟動(dòng)(netstat-ntlp查看2181端口是否打開)/usr/zk/zookeeper-3.4.6/bin/zkServer.shstartRedis啟動(dòng)(netstat-ntlp查看6379端口是否打開)/usr/redis/bin/redis-server/usr/redis/bin/redis.confKafka啟動(dòng)(netstat-ntlp查看9092端口是否打開)/opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh-daemon(空格連接下一行)/opt/kafka/kafka_2.11-2.0.0/config/pertiesFlink任務(wù)在Yarn上用perjob模式(即Job分離模式,不采用Session模式),方便Yarn回收資源。任務(wù)一:實(shí)時(shí)數(shù)據(jù)采集1、在Master節(jié)點(diǎn)使用Flume采集實(shí)時(shí)數(shù)據(jù)生成器26001端口的socket數(shù)據(jù),將數(shù)據(jù)存入到Kafka的Topic中(topic名稱為order,分區(qū)數(shù)為4),將Flume的配置截圖粘貼至對(duì)應(yīng)報(bào)告中;2、Flume接收數(shù)據(jù)注入kafka的同時(shí),將數(shù)據(jù)備份到HDFS目錄/user/test/flumebackup下,將備份結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中。任務(wù)二:使用Flink處理Kafka中的數(shù)據(jù)編寫Scala工程代碼,使用Flink消費(fèi)Kafka中Topic為order的數(shù)據(jù)并進(jìn)行相應(yīng)的數(shù)據(jù)統(tǒng)計(jì)計(jì)算。1、 使用Flink消費(fèi)Kafka中的數(shù)據(jù),統(tǒng)計(jì)個(gè)人實(shí)時(shí)訂單總額,將key設(shè)置成totalprice存入Redis中(再使用hash數(shù)據(jù)格式,key存放為用戶id,value存放為該用戶消費(fèi)總額),使用rediscli以getkey方式獲取totalprice值,將結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中,需兩次截圖,第一次截圖和第二次截圖間隔一分鐘以上,第一次截圖放前面,第二次放后面。2、 在任務(wù)1進(jìn)行的同時(shí)需監(jiān)控若發(fā)現(xiàn)0RDERSTATUS字段為F,將數(shù)據(jù)存入MySQL表alarmdata中(可考慮側(cè)邊流的實(shí)現(xiàn)),然后在Linux的MySQL命令行中根據(jù)ORDERKEY逆序排序,查詢出前5條,將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;3、 使用Flink消費(fèi)kafka中的數(shù)據(jù),統(tǒng)計(jì)每分鐘下單的數(shù)量,將key設(shè)置成totalorder存入redis中。使用rediscli以getkey方式獲取totalorder值,將結(jié)果粘貼至對(duì)應(yīng)報(bào)告中,需兩次截圖,第一次截圖(應(yīng)該在job啟動(dòng)2分鐘數(shù)據(jù)穩(wěn)定后再截圖)和第二次截

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論