本文共 3302 字,大约阅读时间需要 11 分钟。
知识点01:回顾
case when 函数的功能及语法
功能:实现多条件的判断逻辑
语法:
case col when condition case when col = valueif(条件,true的结果,false的结果):用于单条件的判断,支持多条件判断: if(条件1,if(条件2,true,false),false)
concat 与 concat_ws 函数
功能:实现字符串拼接
语法:
concat(str1, str2, …) concat_ws(分隔符,str1, str2, …)
collect_set 与 collect_list
功能:将某一列的多行内容合并为一行
语法:
collect_set(colname) collect_list(colname)
Json 处理函数
方式一:
get_json_object:用于取某一 JSON 字符串中的某一元素,格式为 $.元素名 json_tuple:一次性取多个元素
方式二:使用 JSONSerde,支持按键分割 JSON 数据
窗口函数
语法:
funName(参数) over (partition by col [order by col] [window_size])关键字:
partition by:分区,相同分区的数据放在一起 order by:按分区内排序 window_size:指定窗口,支持默认窗口和指定分区时的默认窗口
窗口聚合函数:sum、count、min、max、avg
first_value 与 last_value
功能:
first_value(col):取分区内的第一条数据 last_value(col):取分区内的最后一条数据注意:默认使用默认窗口
lag 与 lead
功能:
lag(colName,N,default):向前偏移 lead(colName,N,default):向后偏移
MapReduce 优化
文件格式
文件格式:
- textfile(默认)
- SequenceFile(二进制)
- 列式存储:rcfile、orc、parquet
优点:
数据倾斜
现象:某个 Task 的进度卡在 99%或 100%
原因:Task 负载高、数据分配不均
场景:group by 或 join
解决方法:
- group by:
- 开启 Combiner
- 构建随机分区(如
distribute by rand())
- join:避免 Reduce Join
知识点02:目标
大数据业务
- 实际应用场景:解决企业中的数据分析问题
- 业务流程:数据从产生到应用的流程
大数据平台技术架构
- 技术:Hadoop、Spark、Flink、Hive、Kafka、Redis、ElasticSearch
- 架构:分层架构、Kappa 架构
项目环境测试
常见数据源
- 业务数据:用户数据、商品数据、订单数据
- 用户行为数据:注册、登录、访问、搜索、支付等操作
- 爬虫数据、运维日志、第三方数据
知识点03:大数据业务需求
目标
实施
- 需求本质:利用数据挖掘价值,提高公司决策能力
- 使用人群:运营人员、决策人员
- 流程:分析、发现问题、解决问题
场景
- 推荐系统:用户画像、精准推荐
- 风控系统:金融风控、系统风控、刷单风控
- 机器学习:人脸识别、无人驾驶
小结
知识点04:在线教育项目需求
目标
实施
- 行业:线上教育
- 产品:课程
- 目标:提升转化率、学员考勤效率
业务流程
项目需求
- 需求1:用户转化率分析(访问转咨询率、意向转报名率)
- 需求2:学员考勤分析(出勤率、迟到率等)
项目看板模块
- 访问咨询模块、意向分析模块、报名分析模块、考勤分析模块
小结
知识点05:业务流程:数据来源
目标
实施
- 业务数据:存储在业务数据库中
- 用户行为数据:记录用户操作数据
- 爬虫数据:根据需求爬取互联网数据
- 运维日志:辅助运维分析
- 第三方数据:合作方数据
小结
知识点06:业务流程:数据采集及存储
目标
实施
- 数据采集:工具为 Flume、Sqoop
- 数据存储:Hive 数据仓库
小结
知识点07:业务流程:数据处理及应用
目标
实施
- 数据处理:Hive、SparkSQL、SparkMLlib
- 数据应用:报表、用户画像、推荐系统
小结
知识点08:技术架构:常用技术选型
目标
实施
- 数据采集:Flume、Sqoop、Canal
- 数据存储:HDFS、HBase、Kafka、Redis、ElasticSearch、MySQL
- 数据处理:MapReduce、Spark、Flink、Impala、Kylin、Drill
- 其他工具:Zookeeper、Oozie、Hue、Cloudera Manager
小结
知识点09:技术架构:基础平台架构
目标
实施
- Lambda 架构:支持离线和实时处理
- Kappa 架构:实时处理
小结
知识点10:技术架构:在线教育项目架构
目标
实施
- 数据生成:业务系统、Sqoop
- 数据存储:Hive
- 数据处理:HiveSQL、MapReduce
- 数据应用:MySQL、FineBI
- 任务调度:Oozie
- 可视化交互:Hue
- 集群管理:Cloudera Manager
小结
知识点11:平台搭建:命令行部署
目标
实施
- 优点:灵活性高、安全性强
- 缺点:管理复杂,配置需手动同步
小结
知识点12:平台搭建:集群管理工具部署
目标
实施
- 工具:Cloudera Manager、Ambari
- 过程:准备软件、安装 CM、管理集群
小结
知识点13:Cloudera Manager 平台使用
目标
实施
- 虚拟机配置:IP地址、用户名、密码
- 启动虚拟机:使用 VMware WorkStation
- 访问 CM 界面:192.168.88.150:7180
- 登录 CM:用户名 admin,密码 admin
小结
知识点14:项目虚拟机环境
目标
实施
- 安装虚拟机:使用 .vmx 文件启动
- 软件安装:Hadoop、Hive、Sqoop、Flume、Oozie、Hue
- 环境测试:使用 CRT 远程连接
小结
知识点15:Hue 的使用
目标
实施
- 启动 Hue:使用 start-hue.sh
- 访问 Hue:node1:8888
- 登录 Hue:用户名 hue,密码 123456
小结
知识点16:数据生成:用户行为数据演示
目标
实施
- 用户访问网页:记录用户 IP、服务端时间、URI
- 埋点收集数据:记录用户操作行为
- 发送日志:日志服务器记录用户行为日志
小结
知识点17:数据生成:数据内容
目标
实施
- 字段内容:
- 用户 IP 地址
- 服务端时间
- 请求服务端地址
- URI
- en=e_l(首次访问)
- en=e_pv(页面浏览)
- en=e_crt(订单提交)
- en=e_pay(支付操作)
小结
转载地址:http://nzwzz.baihongyu.com/