2024年最新【推荐系统】推荐业务架构介绍(一)_推荐业务 百度百科(1),2024必看

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

2.2.2.3 Sqoop 迁移案例

sqoop 导出的 hdfs 分片数据,都是使用逗号 , 分割

于 hive 默认的分隔符是 /u0001(Ctrl+A)

Mysql导入对应hive类型:

MySQL(bigint) --> Hive(bigint) 
MySQL(tinyint) --> Hive(boolean) 
MySQL(int) --> Hive(int) 
MySQL(double) --> Hive(double) 
MySQL(bit) --> Hive(boolean) 
MySQL(varchar) --> Hive(string) 
MySQL(decimal) --> Hive(double) 
MySQL(date/timestamp) --> Hive(string)

注意:1、连接JDBC的IP 地址 或者主机名是否错误
2、确认mysql数据库打开并且能够sqoop测试成功

  • 3、文章表导入news_article_basic,news_article_content、news_channel

  • sqoop迁移一些有特殊字符的数据导入hadoop

    • 加入—query参数,从数据库中选中对应字段,过滤相应内容,使用REPLACE、CHAR(或者CHR)进行替换字符
  • HIVE读取存在问题

  • HIVE默认分割符,**“\t”, “\n”**这些特殊字符出不了

–query
select article_id, user_id, channel_id, REPLACE(REPLACE(REPLACE(title, CHAR(13), ‘’), CHAR(10), ‘’), ‘,’, ’ ') title, status, update_time from news_article_basic limit 1;
±-----------±--------±-----------±----------------------------±-------±--------------------+
| article_id | user_id | channel_id | title | status | update_time |
±-----------±--------±-----------±----------------------------±-------±--------------------+
| 1 | 1 | 17 | Vue props用法小结原荐 | 2 | 2019-02-18 11:08:16 |
±-----------±--------±-----------±----------------------------±-------±--------------------+



* 并且mysql表中存在tinyibt,必须在connet中加入: ?tinyInt1isBit=false
	+ 防止默认到HIVE中,字段默认会被转化为boolean数据类型


4、news\_channel与用户两张表一起导入


5、news\_article\_content


* 全量导入(表只是看结构,不需要在HIVE中创建,因为是直接导入HIVE,会自动创建news\_article\_content)


#### 2.2.3 crontab-shell脚本定时运行


* 创建一个定时运行的脚本
	+ crontab -e
* 写入定时执行的命令:
	+ \*/30 \* \* \* \* /root/toutiao\_project/scripts/import\_incremental.sh
* 启动服务
	+ service crond start/stop


#### 2.2.3 总结


* sqoop导入业务数据到hadoop操作
	+ append, lastmodifield
* 增量导入形式


## 2.3 用户行为收集到HIVE


#### 2.3.1 为什么要收集用户点击行为日志


* 便于了解分析用户的行为、喜好变化
* 为用户建立画像提供依据


#### 2.3.2 用户日志如何收集


##### 2.3.2.1 埋点开发测试流程


* 埋点参数:
	+ **就是在应用中特定的流程收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑**
* 1、PM(项目经理)、算法推荐工程师一起指定埋点需求文档
* 2、后端、客户端 APP集成
* 3、推荐人员基于文档埋点测试与梳理


##### 2.3.2.2 黑马头条文章推荐埋点需求整理


* 埋点事件号:
	+ 停留时间
	+ - read
	+ 点击事件
	+ - click
	+ 曝光事件(相当于刷新一次请求推荐新文章)
	+ - exposure
	+ 收藏事件
	+ - collect
	+ 分享事件
	+ - share
* 埋点参数文件结构
	+ 曝光的参数:下拉刷新,推荐新的若干篇文章
	+ 我们将埋点参数设计成一个固定格式的json字符串


#### 2.3.3 离线部分-用户日志收集


##### 通过flume将业务数据服务器A的日志收集到hadoop服务器hdfs的hive中


* 创建HIVE对应日志收集表


	+ HIVE数据库的设置,分区?
	+ 手动关联分区的hadoop的目录
	+ 收集到新的数据库中
	+ ```
	a1.sources.s1.interceptors.i1.regex=\\{.\*\\}
	
	```
* flume收集日志配置

 sink:
* 开启收集命令


#### 2.3.3 Supervisor进程管理


很方便的监听、启动、停止、重启一个或**多个**进程


* 使用
	+ 1、配置 supervisor开启配置文件在哪里
		- /etc/supervisor/
	+ 2、配置.conf ,reco.conf
	+ 3、写入配置格式
	+ 4、开启supervisor, 启动  
	 supervisord -c /etc/supervisord.conf
	+ 5、supervisorctl管理进程


#### 2.3.4 supervisor 启动监听flume收集日志程序


* 1、添加配置


	+ ```
	[program:collect-click]
	command=/bin/bash /root/toutiao_project/scripts/collect_click.sh
	user=root
	autorestart=true
	redirect_stderr=true
	stdout_logfile=/root/logs/collect.log
	loglevel=info
	stopsignal=KILL
	stopasgroup=true
	killasgroup=true
	
	```
* 2、update更新我们要监控管理的程序


#### 2.3.6 总结


* 用户行为日志收集的相关工作流程
* flume收集到hive配置
* supervisor进程管理工具使用


## 2.1 离线画像业务介绍


**文章内容标签化:内容标签化,根据内容定性的制定一系列标签,这些标签可以是描述性标签。针对于文章就是文章相关的内容词语。**


* 文章:频道ID内容,关键词、主题词


用户画像:研究用户对内容的喜好程度


## 2.4 离线文章画像计算


#### 离线文章画像组成需求


* 文章画像,就是给每篇文章定义一些词。
* 关键词:文章中一些词的权重(TFIDF与texrank)高的。
* 主题词:是进行规范化处理的,文章中出现的同义词,计算结果出现次数高的词。


	+ 共性的词


**1、原始文章表数据合并得到文章所有的词语句信息**


* 文章标题+文章频道名称+文章内容组成文章完整内容


#### 2.4.1 原始文章数据的合并


* 初始化spark信息配置,定义一个积基类


##### 2.4.1.1 创建Spark初始化相关配置


* 合并三张表内容,到一张表当中,写入到HIVE中


	+ article数据库:存放文章计算结果
	+ article\_data
* 建议初始化spark , SparkSessionBase


jupyter notebook先把代码写好,测试好


##### 2.4.1.2 进行合并计算


3、新建merge\_data.ipynb文件


* 初始化spark信息
* 读取文章进行处理合并
	+ DF 进行注册一个表,temp合并文章频道名称


#### 2.4.2 Tfidf计算


article\_data


##### 2.4.2.1 目的


* 计算出每篇文章的词语的TFIDF结果用于抽取画像
* 结果:计算得出N篇文章的TFIDF值,IDF索引结果合并得到词




![img](https://img-blog.csdnimg.cn/img_convert/e3d0f95068e5750470fba926ba07f4ca.png)
![img](https://img-blog.csdnimg.cn/img_convert/bdf36fec4853f36a28a027622bf41ec7.png)
![img](https://img-blog.csdnimg.cn/img_convert/5442b3e4bba6eee3b407240669afdf5e.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

转存中...(img-2TebVFGf-1715655168989)]
[外链图片转存中...(img-EYGwzcMJ-1715655168989)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值