教程总体简介:1.1 推荐系统简介、1.2 推荐系统设计、1.3 推荐算法、二 根据用户行为数据创建ALS模型并召回商品、三 CTR预估数据准备、5.3 HBase 的安装与Shell操作、4.3 Hive 函数、MapReduce实战、spark-core RDD常用算子练习、3、JSON数据的处理、3.1 介绍、3.2 实践、4.4 hive综合案例、spark-core 实战案例、四 LR实现CTR预估、4、数据清洗、5.6 HBase组件、1、sparkStreaming概述、spark-core实战、五 离线推荐数据缓存、2、Spark Streaming编码实践、1.4 案例--基于协同过滤的电影推荐、1.5 推荐系统评估、spark 安装部署及standalone模式介绍、六 实时产生推荐结果、Spark Streaming的状态操作、推荐系统基础、1.6 推荐系统的冷启动问题、5.1 HBase简介、4.1 Hive基本概念、Spark SQL 概述、spark 入门、一 个性化电商广告推荐系统介绍、资源调度框架 YARN、基于回归模型的协同过滤推荐、基于矩阵分解的CF算法、基于矩阵分解的CF算法实现(一)、LFM、基于矩阵分解的CF算法实现(二)、BiasSvd、基于内容的推荐算法(Content-Based)、基于内容的电影推荐、物品画像、基于TF-IDF的特征提取技术、用户画像、为用户产生TOP-N推荐结果、DataFrame、2.1 介绍、2.2 创建DataFrame、2.3 DataFrame API实现、5.2 HBase的数据模型、4.2 Hive 基本操作、分布式处理框架 MapReduce
gitlab.com/yinuo_112/B…
全套教程部分目录:
1.6 推荐系统的冷启动问题
学习目标
-
记忆推荐系统冷启动概念
-
了解处理推荐系统冷启动的常用方法
1 推荐系统冷启动概念
-
⽤户冷启动:如何为新⽤户做个性化推荐
-
物品冷启动:如何将新物品推荐给⽤户(协同过滤)
-
系统冷启动:⽤户冷启动+物品冷启动
-
本质是推荐系统依赖历史数据,没有历史数据⽆法预测⽤户偏好
2 处理推荐系统冷启动问题的常用方法
-
用户冷启动
-
1.收集⽤户特征
-
⽤户注册信息:性别、年龄、地域
-
设备信息:定位、⼿机型号、app列表
-
社交信息、推⼴素材、安装来源
-
-
2 引导用户填写兴趣
-
3 使用其它站点的行为数据, 例如腾讯视频&音乐 今日头条&抖音
-
4 新老用户推荐策略的差异
- 新⽤户在冷启动阶段更倾向于热门排⾏榜,⽼⽤户会更加需要长尾推荐
- Explore Exploit⼒度
- 使⽤单独的特征和模型预估
-
举例 性别与电视剧的关系
-
-
物品冷启动
- 给物品打标签
- 利用物品的内容信息,将新物品先投放给曾经喜欢过和它内容相似的其他物品的用户。
-
系统冷启动
- 基于内容的推荐 系统早期
- 基于内容的推荐逐渐过渡到协同过滤
- 基于内容的推荐和协同过滤的推荐结果都计算出来 加权求和得到最终推荐结果
4.1 Hadoop生态系统
狭义的Hadoop VS 广义的Hadoop
- 广义的Hadoop:指的是Hadoop生态系统,Hadoop生态系统是一个很庞大的概念,hadoop是其中最重要最基础的一个部分,生态系统中每一子系统只解决某一个特定的问题域(甚至可能更窄),不搞统一型的全能系统,而是小而精的多个小系统;
Hive:数据仓库
R:数据分析
Mahout:机器学习库
pig:脚本语言,跟Hive类似
Oozie:工作流引擎,管理作业执行顺序
Zookeeper:用户无感知,主节点挂掉选择从节点作为主的
Flume:日志收集框架
Sqoop:数据交换框架,例如:关系型数据库与HDFS之间的数据交换
Hbase : 海量数据中的查询,相当于分布式文件系统中的数据库
Spark: 分布式的计算框架基于内存
- spark core
- spark sql
- spark streaming 准实时 不算是一个标准的流式计算
- spark ML spark MLlib
Kafka: 消息队列
Storm: 分布式的流式计算框架 python操作storm
Flink: 分布式的流式计算框架
Hadoop生态系统的特点
-
开源、社区活跃
-
囊括了大数据处理的方方面面
-
成熟的生态圈
5.1 HBase简介
1 什么是HBase
-
HBase是一个分布式的、面向列的开源数据库
-
HBase是Google BigTable的开源实现
-
HBase不同于一般的关系数据库, 适合非结构化数据存储
2 BigTable
-
BigTable是Google设计的分布式数据存储系统,用来处理海量的数据的一种非关系型的数据库。
-
适合大规模海量数据,PB级数据;
-
分布式、并发数据处理,效率极高;
-
易于扩展,支持动态伸缩
-
适用于廉价设备;
-
不适用于传统关系型数据的存储;
-
3 面向列的数据库
HBase 与 传统关系数据库的区别
| HBase | 关系型数据库 |
|---|
- 关系型数据库中数据示例
| ID | FILE NAME | FILE PATH | FILE TYPE | FILE SIZE | CREATOR |
|---|
- 同样数据保存到列式数据库中
| RowKey | FILE INFO | SAVE INFO |
|---|
- 行数据库&列数据库存储方式比较
4 什么是非结构化数据存储
-
结构化数据
- 适合用二维表来展示的数据
-
非结构化数据
-
非结构化数据是数据结构不规则或不完整
-
没有预定义的数据模型
-
不方便用数据库二维逻辑表来表现
-
办公文档、文本、图片、XML, HTML、各类报表、图像和音频/视频信息等
-
5 HBase在Hadoop生态中的地位
-
HBase是Apache基金会顶级项目
-
HBase基于HDFS进行数据存储
-
HBase可以存储超大数据并适合用来进行大数据的实时查询
6 HBase与HDFS
-
HBase建立在Hadoop文件系统上, 利用了HDFS的容错能力
-
HBase提供对数据的随机实时读/写访问功能
-
HBase内部使用哈希表, 并存储索引, 可以快速查找HDFS中数据
7 HBase使用场景
- 瞬间写入量很大
- 大量数据需要长期保存, 且数量会持续增长
- HBase不适合有join, 多级索引, 表关系复杂的数据模型
2.1 HDFS的使用
-
启动HDFS
- 来到$HADOOP_HOME/sbin目录下
- 执行start-dfs.sh
[hadoop@hadoop00 sbin]$ ./start-dfs.sh
- 可以看到 namenode和 datanode启动的日志信息
Starting namenodes on [hadoop00]
hadoop00: starting namenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-namenode-hadoop00.out
localhost: starting datanode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-datanode-hadoop00.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-secondarynamenode-hadoop00.out
- 通过jps命令查看当前运行的进程
[hadoop@hadoop00 sbin]$ jps
4416 DataNode
4770 Jps
4631 SecondaryNameNode
4251 NameNode
-
可以看到 NameNode DataNode 以及 SecondaryNameNode 说明启动成功
-
通过可视化界面查看HDFS的运行情况
- 通过浏览器查看 192.168.19.137:50070
- Overview界面查看整体情况