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

下載本文檔

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

文檔簡(jiǎn)介

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

高職組

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

賽項(xiàng)賽卷(4卷)

務(wù)

參賽隊(duì)編號(hào):

背景描述

大數(shù)據(jù)時(shí)代,電商經(jīng)營(yíng)模式發(fā)生很大改變。在傳統(tǒng)運(yùn)營(yíng)模式中,

缺乏數(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)者購(gòu)買

產(chǎn)品的花費(fèi)、選擇產(chǎn)品的渠道、偏好產(chǎn)品的類型、產(chǎn)品回購(gòu)周期、購(gòu)

買產(chǎn)品的目的、消費(fèi)者家庭背景、工作和生活環(huán)境、個(gè)人消費(fèi)觀和價(jià)

值觀等。通過數(shù)據(jù)追蹤,知道顧客從哪兒來,是看了某網(wǎng)站投放的廣

告還是通過朋友推薦鏈接,是新訪客還是老用戶,喜歡瀏覽什么產(chǎn)品,

購(gòu)物車有無商品,是否清空,還有每一筆交易記錄,精準(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)綜合利用Hive、Spark、Flink、Vue.js等技術(shù),對(duì)數(shù)據(jù)進(jìn)行

處理、分析及可視化呈現(xiàn),你們作為該小組的技術(shù)人員,請(qǐng)按照下面

任務(wù)完成本次工作。

模塊A:大數(shù)據(jù)平臺(tái)搭建(容器環(huán)境)(15分)

環(huán)境說明:

服務(wù)端登錄地址詳見各模塊服務(wù)端說明。

補(bǔ)充說明:宿主機(jī)可通過Asbru工具或SSH客戶端進(jìn)行SSH訪問;

相關(guān)軟件安裝包在宿主機(jī)的/opt目錄下,請(qǐng)選擇對(duì)應(yīng)的安裝包進(jìn)行

安裝,用不到的可忽略;

所有模塊中應(yīng)用命令必須采用絕對(duì)路徑;

從本地倉(cāng)庫(kù)中拉取鏡像,并啟動(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解壓后的安裝文件到

SlavedSlave2節(jié)點(diǎn),并配置相關(guān)環(huán)境變量,將全部復(fù)制命令復(fù)制并粘貼至

對(duì)應(yīng)報(bào)告中;

4、在Master節(jié)點(diǎn)將Hadoop解壓到/opt目錄下,并將解壓包分發(fā)至Slavel、

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ù)二:Hive安裝配置

本環(huán)節(jié)需要使用root用戶完成相關(guān)配置,已安裝Hadoop及需要配置前置環(huán)

境,具體要求如下:

1、將Master節(jié)點(diǎn)Hive安裝包解壓到/opt目錄下,將命令復(fù)制并粘貼至對(duì)應(yīng)報(bào)

告中;

2、設(shè)置Hive環(huán)境變量,并使環(huán)境變量生效,并將環(huán)境變量配置內(nèi)容復(fù)制并粘

貼至對(duì)應(yīng)報(bào)告中;

3、完成相關(guān)配置并添加所依賴包,將MySQL數(shù)據(jù)庫(kù)作為Hive元數(shù)據(jù)庫(kù)。初始

化Hive元數(shù)據(jù),并通過schematool相關(guān)命令執(zhí)行初始化,將初始化結(jié)果復(fù)

制粘貼至對(duì)應(yīng)報(bào)告中。

任務(wù)三:Sqoop安裝配置

本環(huán)節(jié)需要使用root用戶完成相關(guān)配置,已安裝Hadoop及需要配置前置環(huán)

境,具體要求如下:

1、將Master節(jié)點(diǎn)Sqoop安裝包解壓,修改解壓后文件夾名為sqoop并移動(dòng)到

/usr/local/src路徑下,將全部命令復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;

2、完善相關(guān)配置,修改Sqoop環(huán)境變量,并使環(huán)境變量只對(duì)當(dāng)前root用戶生

效,并將環(huán)境變量修改內(nèi)容復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;

3、測(cè)試Sqoop連接Master節(jié)點(diǎn)的MySQL數(shù)據(jù)庫(kù)是否成功并展示所有的

database,并將連接命令復(fù)制粘貼至對(duì)應(yīng)報(bào)告中。

模塊B:離線數(shù)據(jù)處理(25分)

環(huán)境說明:

服務(wù)端登錄地址詳見各模塊服務(wù)端說明。

補(bǔ)充說明:各主機(jī)可通過Asbru工具或SSH客戶端進(jìn)行SSH訪問;

Master節(jié)點(diǎn)MySQL數(shù)據(jù)庫(kù)用戶名/密碼: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庫(kù)中表CUSTOMER.NATION.

PART、PARTSUPP、REGION,SUPPLIER的數(shù)據(jù)全量抽取到Hive的ods庫(kù)中對(duì)應(yīng)表

customer,nation,part,partsupp,region,supplier中,將表ORDERS,LINEITEM

的數(shù)據(jù)增量抽取到Hive的0ds庫(kù)中對(duì)應(yīng)表ORDERS,LINEITEM中。

1、抽取shtdstore庫(kù)中CUSTOMER的全量數(shù)據(jù)進(jìn)入Hive的ods庫(kù)中表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庫(kù)中NATION的全量數(shù)據(jù)進(jìn)入Hive的ods庫(kù)中表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庫(kù)中PART的全量數(shù)據(jù)進(jìn)入Hive的ods庫(kù)中表part。字段

排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前

比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)0并在hivecli執(zhí)行show

partitionsods.part命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;

4、抽取shtd_store庫(kù)中PARTSUPP的全量數(shù)據(jù)進(jìn)入Hive的ods庫(kù)中表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庫(kù)中REGION的全量數(shù)據(jù)進(jìn)入Hive的ods庫(kù)中表region。

字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為

當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)

行showpartitionsods.region命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中;

6、抽取shtdstore庫(kù)中SUPPLIER的全量數(shù)據(jù)進(jìn)入Hive的ods庫(kù)中表supplier。

字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為

當(dāng)前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)

行showpartitionsods.supplier命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告

中;

7、抽取shtdstore庫(kù)中ORDERS的增量數(shù)據(jù)進(jìn)入Hive的ods庫(kù)中表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í)行select

count(distinct(dealdate))fromods.orders命令,將結(jié)果截圖復(fù)制粘貼

至對(duì)應(yīng)報(bào)告中;

8,抽取shtd_store庫(kù)中LINEITEM的增量數(shù)據(jù)進(jìn)入Hive的ods庫(kù)中表lineitem,

根據(jù)LINEITEM表中orderkey作為增量字段,只將新增的數(shù)據(jù)抽入,字段類

型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前比賽日的

前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hivecli執(zhí)行showpartitions

ods.lineitem命令,將結(jié)果截圖復(fù)制粘貼至對(duì)應(yīng)報(bào)告中。

任務(wù)二:數(shù)據(jù)清洗

編寫HiveSQL代碼在hive中運(yùn)行,將ods庫(kù)中相應(yīng)表數(shù)據(jù)全量抽取到Hive

的dwd庫(kù)中對(duì)應(yīng)表中。表中有涉及到timestamp類型的,均要求按照yyyy-MM-dd

HH:mni:ss,不記錄毫秒數(shù),若原數(shù)據(jù)中只有年月日,則在時(shí)分秒的位置添加

00:00:00,添加之后使其符合yyyy-MM-ddHH:mm:sso

1、將ods庫(kù)中customer表數(shù)據(jù)抽取到dwd庫(kù)中dim_customer的分區(qū)表,分區(qū)

字段為etldate且值與ods庫(kù)的相對(duì)應(yīng)表該值相等,并添加dwd_insert_user>

dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中

dwd_insert_user.dwd_modify_user均填寫“userl”,dwdinsert_time>

dwd_modify_time均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在hivecli中按

照custkey順序排序,查詢dimcustomer前1條數(shù)據(jù),將結(jié)果內(nèi)容復(fù)制粘

貼至對(duì)應(yīng)報(bào)告中;

2、將ods庫(kù)中part表數(shù)據(jù)抽取到dwd庫(kù)中dim_part的分區(qū)表,分區(qū)字段為

etldate且值與ods庫(kù)的相對(duì)應(yīng)表該值相等,并添加dwdinsert_user.

dwd_insert_time、dwd_modify_user、dwdmodify_time四列,其中

dwd_insert_user>dwd_modify_user均填寫“userl”,dwd_insert_time>

dwd_modify_time均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在hivecli中按

照part_key順序排序,查詢dimjpart前1條數(shù)據(jù),將結(jié)果內(nèi)容復(fù)制粘貼至

對(duì)應(yīng)報(bào)告中;

3、將ods庫(kù)中nation表數(shù)據(jù)抽取到dwd庫(kù)中dim_nation的分區(qū)表,分區(qū)字段

為etldate且值與ods庫(kù)的相對(duì)應(yīng)表該值相等,并添加dwd_insertuser、

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中按

照nation_key順序排序,查詢dim_nation前1條數(shù)據(jù),將結(jié)果內(nèi)容復(fù)制粘

貼至對(duì)應(yīng)報(bào)告中;

4、將ods庫(kù)中region表數(shù)據(jù)抽取到dwd庫(kù)中dim_region的分區(qū)表,分區(qū)字段

為etldate且值與ods庫(kù)的相對(duì)應(yīng)表該值相等,并添加dwd_insertuser>

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庫(kù)中orders表數(shù)據(jù)抽取到dwd庫(kù)中fact_orders的分區(qū)表,分區(qū)字

段為etldate且值與ods庫(kù)的相對(duì)應(yīng)表該值相等,并添加dwd_insert_user^

dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中

dwd_insert_userdwd_modify_user均填寫“userl”,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庫(kù)中l(wèi)ineitem表數(shù)據(jù)抽取到dwd庫(kù)中fact_lineitem的分區(qū)表,分

區(qū)字段為etldate且值與ods庫(kù)的相對(duì)應(yīng)表該值相等,抽取的條件為根據(jù)

orderkey和partkey進(jìn)行去重,并添加dwd_insert_userdwd_insert_time

dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、

dwd_modify_user均填寫“userl”,dwd_insert_timedwd_modify_time

均填寫操作時(shí)間,并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。在hivecli執(zhí)行showpartitions

dwd.fact_lineitem命令,將結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中。

任務(wù)三:指標(biāo)計(jì)算

編寫Scala代碼使用Spark引擎,并計(jì)算相關(guān)指標(biāo)

1、根據(jù)dwd層表統(tǒng)計(jì)每人每天下單的數(shù)量和下單的總金額,存入dws層的

customer_consumption_day_aggr表(表結(jié)構(gòu)如下)中,然后在hivecli

中按照cust_key,totalconsumption,totalorder三列均逆序排序的方式,

查詢出前5條,將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;

字段類型中文含義備注

cust_keyint客戶key

cust_namestring客戶名稱

totalconsumptiondouble消費(fèi)總額當(dāng)月消費(fèi)訂單總額

totalorderint訂單總數(shù)當(dāng)月訂單總額

yearint年訂單產(chǎn)生的年

monthint月訂單產(chǎn)生的月

dayintII訂單產(chǎn)生的日

2、根據(jù)dws層表customer_consumption_day_aggr表,再聯(lián)合

dwd.dim_region,dwd.dim_nation統(tǒng)計(jì)每人每個(gè)月下單的數(shù)量和下單的總金

額,并按照custkey,totalconsumption,totalorder,month進(jìn)行分組逆

序排序(以cust_key為分組條件),將計(jì)算結(jié)果存入MySQL數(shù)據(jù)庫(kù)shtdstore

的nationeverymonth表(表結(jié)構(gòu)如下)中,然后在Linux的MySQL命令行

中根據(jù)訂單總數(shù)、消費(fèi)總額、國(guó)家表主鍵三列均逆序排序的方式,查詢出前

5條,將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;

字段類型中文含義備注

cust_keyint客戶key

cust_namestring客戶名稱

nationkeyint國(guó)家表生鍵

nationnametext國(guó)家名稱

regionkeyint地區(qū)表主鍵

regionnametext地區(qū)名稱

totalconsumptiondouble消費(fèi)總額當(dāng)月消費(fèi)訂單總額

totalorderint訂單總數(shù)當(dāng)月訂單總額

yearint年訂單產(chǎn)生的年

monthint月訂單產(chǎn)生的月

sequenceInt次序

3、請(qǐng)根據(jù)dws層表fact_orders表,再聯(lián)合dwd.dim_nation計(jì)算出某年每個(gè)

國(guó)家的消費(fèi)額中中位數(shù),存入MySQL數(shù)據(jù)庫(kù)shtdstore的nationmedian表

(表結(jié)構(gòu)如下)中,然后在Linux的MySQL命令行中根據(jù)訂單總數(shù)、消費(fèi)總

額、國(guó)家表主鍵三列均逆序排序的方式,查詢出前5條,將SQL語句與執(zhí)行

結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;

字段類型中文含義備注

nationkeyint國(guó)家表主鍵

nationnametext國(guó)家名稱

nationmedianconsumptiondouble該國(guó)家內(nèi)客單該國(guó)家已購(gòu)買產(chǎn)品的金

價(jià)額的中位數(shù)

allnationmedianconsumptiondouble所有國(guó)家訂單所有國(guó)家已購(gòu)買的產(chǎn)品

的中位數(shù)的金額的中位數(shù)

模塊C:數(shù)據(jù)挖掘(10分)

環(huán)境說明:

服務(wù)端登錄地址詳見各模塊服務(wù)端說明。

補(bǔ)充說明:各主機(jī)可通過Asbru工具或SSH客戶端進(jìn)行SSH訪問;

Master節(jié)點(diǎn)MySQL數(shù)據(jù)庫(kù)用戶名/密碼: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)庫(kù)完成。

任務(wù)一:特征工程

1、根據(jù)dwd庫(kù)中fact_orders表,將其轉(zhuǎn)換為以下表:第一列為用戶id,其余

列名為零部件id,按照cust_key進(jìn)行順序排序,保存在hive的

dwd.fact_cust_part_machinelearning_data中,然后在hivecli中執(zhí)行

命令descfact_cust_partmachinelearning中查詢出結(jié)果,將SQL語句

與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中。

字段類型中文含義備注

cust_keydouble客戶key

partkeyldouble用戶是否購(gòu)買過若用戶購(gòu)買過該

零部件1零部件,則值為1,

否則為0

partkey2double用戶是否購(gòu)買過若用戶購(gòu)買過該

零部件2零部件,則值為1,

否則為0

partkey3double用戶是否購(gòu)買過若用戶購(gòu)買過該

零部件3零部件,則值為1,

否則為0

....

任務(wù)二:基于SVD分解的推薦系統(tǒng)

1、根據(jù)任務(wù)一的結(jié)果,對(duì)其進(jìn)行SVD分解,對(duì)數(shù)據(jù)進(jìn)行降維(保留95%以上的

特征信息),根據(jù)該用戶已購(gòu)買的產(chǎn)品分別與未購(gòu)買的商品計(jì)算余弦相似度

再進(jìn)行累加求均值,將累加值最大的5件商品key進(jìn)行輸出作為推薦使用。

將輸出結(jié)果保存至MySQL的part_machine表中。然后在Linux的MySQL命

令行中查詢出前5條數(shù)據(jù),將SQL語句與執(zhí)行結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中。

模塊D:數(shù)據(jù)采集與實(shí)時(shí)計(jì)算(20分)

環(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.shstart

Redis啟動(dòng)(netstat-ntlp查看6379端口是否打開)

/usr/redis/bin/redis-server/usr/redis/bin/redis.conf

Kafka啟動(dòng)(netstat-ntlp查看9092端口是否打開)

/opt/kafka/kafka_2.11-2.0.O/bin/kafka-server-start.sh-daemon(空格連接下一行)

/opt/kafka/kafka_2.11-2.0.0/config/server.properties

Flink任務(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)ORDERSTATUS字段為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è)置成

totalor

溫馨提示

  • 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. 人人文庫(kù)網(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)論