欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

電商大數(shù)據(jù)項目(二)-推薦系統(tǒng)實戰(zhàn)之實時分析以及離線分析

電商大數(shù)據(jù)項目-推薦系統(tǒng)實戰(zhàn)(一)環(huán)境搭建以及日志,人口,商品分析
https://blog.51cto.com/6989066/2325073
電商大數(shù)據(jù)項目-推薦系統(tǒng)實戰(zhàn)之推薦算法
https://blog.51cto.com/6989066/2326209
電商大數(shù)據(jù)項目-推薦系統(tǒng)實戰(zhàn)之實時分析以及離線分析
https://blog.51cto.com/6989066/2326214

創(chuàng)新互聯(lián)建站專注于尤溪網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供尤溪營銷型網(wǎng)站建設(shè),尤溪網(wǎng)站制作、尤溪網(wǎng)頁設(shè)計、尤溪網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造尤溪網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供尤溪網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

五、實時分析Top IP(實時分析Top用戶)
一)模塊介紹
電商網(wǎng)站運營中,需要分析網(wǎng)站訪問排名前N的IP,主要用來審計是否有異常IP,同時對網(wǎng)站運營情況進(jìn)行分析。
(二)需求分析
① 如何統(tǒng)計IP
?通過用戶點擊日志,即可計算

② 如何分析IP
?分析不同時間段IP的訪問量
?分析熱門IP

③ 深度思考:如何去除爬蟲水軍
(三)技術(shù)方案
?數(shù)據(jù)采集邏輯(ETL)
?用戶的訪問日志(點擊日志)一般存儲在日志服務(wù)器,需要通過Flume拉取

?點擊日志的緩存
?由Flume采集的用戶點擊日志,緩存到Kafka中

?實時分析Top用戶信息
?使用Apache Storm進(jìn)行實時分析
?使用Spark Streaming進(jìn)行實時分析

?注意:在Ambari部署的Flume和Kafka環(huán)境中,已經(jīng)將Flume和Kafka進(jìn)行了集成,所以可以直接將Flume采集的數(shù)據(jù)送入Kafka

(四)實驗數(shù)據(jù)及說明

?表user_click_log(用戶點擊信息表)
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
user_id 用戶ID varchar(18) Not null
user_ip 用戶IP varchar(20) Not null
url 用戶點擊URL varchar(200)
click_time 用戶點擊時間 varchar(40)
action_type 動作名稱 varchar(40)
area_id 地區(qū)ID varchar(40)
補充說明 action_type:1收藏,2加入購物車,3點擊

?結(jié)果表:表hopip (熱門ip表)
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
ip IP varchar(18) Not null
pv 訪問量 varchar(200)
補充說明

(五)技術(shù)實現(xiàn)
① 通過Flume采集用戶點擊日志數(shù)據(jù)
?創(chuàng)建Flume的配置文件:

?注意:HDP集群kafka broker的默認(rèn)端口是6667,而不是9092
② 使用Kafka緩存數(shù)據(jù)
?新建一個名為mytopic的topic
bin/kafka-topics.sh --create --zookeeper hdp21:2181 --replication-factor 1 --partitions 1 --topic mytopic

?查看新創(chuàng)建的Topic
bin/kafka-topics.sh --list --zookeeper hdp21:2181

?測試:創(chuàng)建個消費者來消費mytopic里面的數(shù)據(jù)。bootstrap-server這里填主機(jī)名或者IP,而不是localhost
bin/kafka-console-consumer.sh --bootstrap-server hdp21:6667 --topic mytopic --from-beginning

?刪除Topic
bin/kafka-topics.sh --delete --zookeeper hdp21:2181 --topic mytopic
注意:這句命令只會將topic標(biāo)識為“刪除狀態(tài)”。如果想,徹底刪除Topic,需要將delete.topic.enable=true,并且重啟Kafka
③ 實時分析Top 5用戶信息:基于Storm和Spark Streaming
?實現(xiàn)方式一:使用Apache Storm進(jìn)行實時分析

注意:
?pom文件中,Storm的版本為1.1.0
?在此pom文件中,已經(jīng)集成了Storm與Kafka、redis、JDBC、MySQL的依賴

運行結(jié)果,如下:

?實現(xiàn)方式二:使用Spark Streaming進(jìn)行實時分析
?結(jié)合Spark SQL分析Top用戶(熱點用戶)
?在上一章的Spark工程中的pom.xml文件中加入以下依賴

?注意:由于Kafka版本的問題,接收Kafka的數(shù)據(jù)需要使用Receiver方式

運行結(jié)果如下:

六、實時分析黑名單用戶
(一)模塊介紹
電商網(wǎng)站運營中,需要分析網(wǎng)站訪問排名前N的客戶,主要用來審計是否有異常用戶,同時分析忠誠用戶。
(二)需求分析
① 如何定義異常用戶?
?通過用戶訪問頻度進(jìn)行分析,每小時訪問40次以上,同時訪問平均間隔4秒以內(nèi),則為異常用戶
?關(guān)聯(lián)異常用戶庫,進(jìn)行異常分析

② 如何計算用戶訪問內(nèi)容
?通過用戶點擊日志,即可計算

③ 深度思考:如何去除爬蟲水軍
(三)技術(shù)方案
?數(shù)據(jù)采集邏輯(ETL)
?用戶的訪問日志(點擊日志)一般存儲在日志服務(wù)器,需要通過Flume拉取

?點擊日志的緩存
?由Flume采集的用戶點擊日志,緩存到Kafka中

?實時分析Top用戶信息
?使用Apache Storm進(jìn)行實時分析黑名單用戶
?使用Spark Streaming進(jìn)行實時分析黑名單用戶

?注意:在Ambari部署的Flume和Kafka環(huán)境中,已經(jīng)將Flume和Kafka進(jìn)行了集成,所以可以直接將Flume采集的數(shù)據(jù)送入Kafka

(四)實驗數(shù)據(jù)及說明

?表UserInfo(用戶信息表)
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
UserID ×××號 varchar(18) Not null
Username 姓名 varchar(20) Not null
Sex 性別 varchar(10) Not null
Birthday 出生年月 datetime Not null
Birthprov 出生省份 varchar(8) Not null
Birthcity 出生城市 varchar(8) Not null
Job 工作 varchar(20) Not null
EducationLevel 教育水平 int Not null
SnnualSalary 年薪 double Not null
Addr_prov 現(xiàn)居地省份編號 varchar(8) Not null
Addr_city 現(xiàn)居地城市編號 varchar(8) Not null
Address 通信地址 varchar(50) Not null
Mobile 聯(lián)系電話 varchar(11) Not null
Mail 郵箱 varchar(30) Not null
status 用戶狀態(tài) Int
補充說明

?表user_click_log(用戶點擊信息表)
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
user_id 用戶ID varchar(18) Not null
user_ip 用戶IP varchar(20) Not null
url 用戶點擊URL varchar(200)
click_time 用戶點擊時間 varchar(40)
action_type 動作名稱 varchar(40)
area_id 地區(qū)ID varchar(40)
補充說明 action_type:1收藏,2加入購物車,3點擊

?上一章的結(jié)果表:表hopip (熱門ip表)
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
user_ip IP varchar(18) Not null
pv 訪問量 varchar(200)
補充說明

?結(jié)果表:表black_list (黑名單表)
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
user_id 用戶ID varchar(18) Not null
user_ip 用戶IP varchar(40) Not null
補充說明
(五)技術(shù)實現(xiàn)
1.首先,在第五章的需求里面,我們已經(jīng)實現(xiàn)了Hot IP的分析。下面是Hop IP的結(jié)果表。
?上一章的結(jié)果表:表hopip (熱門ip表)
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
user_ip IP varchar(18) Not null
pv 訪問量 varchar(200)
補充說明
2.我們只需要根據(jù)需求的規(guī)定,關(guān)聯(lián)用戶信息表,即可分析出某段時間內(nèi)的黑名單用戶信息,例如:每10秒鐘,統(tǒng)計過去30秒內(nèi)訪問頻率超過10次的用戶信息。這時候就需要使用到窗口函數(shù)。在Apache Storm和Spark Streaming中都可以使用窗口函數(shù)。

3.方案一:使用Storm的窗口函數(shù),將結(jié)果寫入MySQL
?在MySQL中創(chuàng)建數(shù)據(jù)庫和相應(yīng)的表:
create database demo;
CREATE USER 'demo'@'%'IDENTIFIED BY 'Welcome_1';
GRANT ALL PRIVILEGES ON . TO 'demo'@'%';
FLUSH PRIVILEGES;
create table myresult(userid int primary key,PV int);
?注意:
?在上一章的課程中,pom文件已經(jīng)集成了Storm與Kafka、Redis、JDBC、MySQL的依賴
?如果使用Storm的提供JdbcInsertBolt組件,會一直將結(jié)果不停寫入MySQL中。更好的做法是:創(chuàng)建一個自己的Bolt組件:如果MySQL不存在該userid,就執(zhí)行插入;如果已經(jīng)存在就執(zhí)行更新操作。

當(dāng)分析出每個用戶的PV后,可在MySQL中執(zhí)行下面的查詢,查看黑名單用戶信息。
select userinfo.userid,userinfo.username,myresult.PV from userinfo,myresult where userinfo.userid=myresult.userid;
4.方案二:使用Spark Streaming的窗口函數(shù)

輸出結(jié)果:

七、廣告點擊流量統(tǒng)計
(一)模塊介紹
電商網(wǎng)站運營中,廣告是一個非常重要的模塊,需要分析廣告的點擊情況,主要用來優(yōu)化每個城市的點擊量。

(二)需求分析
① 如何分析廣告點擊數(shù)據(jù)?
?通過用戶對廣告的點擊log,分析廣告數(shù)據(jù)

② 計算每天各省各城市各廣告的點擊量

(三)技術(shù)方案
離線分析:拉取廣告日志,需要通過Flume拉取到HDFS上,通過MapReduce和Spark進(jìn)行離線分析。
(四)實驗數(shù)據(jù)及說明

?廣告點擊日志
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
userid 用戶id varchar(18) Not nul
ip 點擊IP varchar(18) Not null
click_time 點擊時間 varchar(20) Not null
url 廣告鏈接 varchar(20)
area_id 地區(qū)ID varchar(20)

?表Area_info(地區(qū)信息表)
列名 描述 數(shù)據(jù)類型 空/非空 約束條件
area_id 地區(qū)編號 varchar(18) Not null
area_name 地區(qū)名稱 varchar(20) Not null

(五)技術(shù)實現(xiàn)
① 使用Flume采集用戶點擊日志
?通常使用shell腳本執(zhí)行日志采集
?復(fù)雜情況,使用可視化的ETL工具,來進(jìn)行Flume Agent控制
下面是配置文件,注意HDFS的端口號。

② 使用Hive進(jìn)行離線廣告分析
?創(chuàng)建地區(qū)表
create external table areainfo
(areaid int,areaname string)
row format delimited fields terminated by ','
location '/input/project07';

?創(chuàng)建廣告點擊日志表
create external table adloginfo
(userid int,ip string,clicktime string,url string,areaid int)
row format delimited fields terminated by ','
location '/flume/20180603';

?通過SQL分析數(shù)據(jù)
select areainfo.areaname,adloginfo.url,adloginfo.clicktime,count(adloginfo.clicktime)
from adloginfo,areainfo
where adloginfo.areaid=areainfo.areaid
group by areainfo.areaname,adloginfo.url,adloginfo.clicktime;
③ 使用Spark進(jìn)行離線廣告日志分析

④ 使用Pig進(jìn)行離線廣告日志分析
?加載地區(qū)表
areainfo = load '/input/areainfo.txt' using PigStorage(',') as (areaid:int,areaname:chararray);

?加載廣告日志表
adloginfo = load '/flume/20180603/userclicklog.txt' using PigStorage(',') as (userid:int,ip:chararray,clicktime:chararray,url:chararray,areaid:int);

?按照url、地區(qū)、點擊時間第廣告點擊日志進(jìn)行分組
adloginfo1 = group adloginfo by (url,areaid,clicktime);

?提取url、areaid、點擊時間和總頻率
adloginfo2 = foreach adloginfo1 generate group,COUNT(adloginfo.clicktime);

?執(zhí)行多表查詢,關(guān)聯(lián)地區(qū)表
result = join areainfo by areaid, adloginfo2 by group.areaid;

分享文章:電商大數(shù)據(jù)項目(二)-推薦系統(tǒng)實戰(zhàn)之實時分析以及離線分析
網(wǎng)站URL:http://chinadenli.net/article6/gogeig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)企業(yè)建站定制網(wǎng)站移動網(wǎng)站建設(shè)外貿(mào)建站建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)