1 数仓概念总结
1)数据仓库的输入数据源和输出系统分别是什么?
输入系统:埋点产生的用户行为数据、JavaEE后台产生的业务数据。
输出系统:报表系统、用户画像系统、推荐系统
2 项目需求及架构总结
2.1 集群规模计算
2.2 框架版本选型
1)Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员)
2)CDH:国内使用最多的版本,但CM不开源,但其实对中、小公司使用来说没有影响(建议使用)
3)HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少
2.3 服务器选型
服务器使用物理机还是云主机?
1)机器成本考虑:
(1)物理机:以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,单台报价4W出头,需考虑托管服务器费用。一般物理机寿命5年左右
(2)云主机,以阿里云为例,差不多相同配置,每年5W
2)运维成本考虑:
(1)物理机:需要有专业的运维人员
(2)云主机:很多运维工作都由阿里云已经完成,运维相对较轻松
3 数据采集模块总结
3.1 Linux&Shell相关总结
1)Linux常用命令
序号 命令 命令解释
2)Shell常用工具
awk、sed、cut、sort
3.2 Hadoop相关总结
1)Hadoop默认不支持LZO压缩,如果需要支持LZO压缩,需要添加jar包,并在hadoop的cores-site.xml文件中添加相关压缩配置。
2)Hadoop常用端口号
3)Hadoop配置文件以及简单的Hadoop集群搭建
4)HDFS读流程和写流程
5)MapReduce的Shuffle过程及Hadoop优化(包括:压缩、小文件、集群优化)
6)Yarn的Job提交流程
7)Yarn的默认调度器、调度器分类、以及他们之间的区别
8)HDFS存储多目录
9)Hadoop参数调优
10)项目经验之基准测试
3.3 Zookeeper相关总结
1)选举机制
半数机制
2)常用命令
ls、get、create
3.4 Flume相关总结
1)Flume组成,Put事务,Take事务
Taildir Source:断点续传、多目录。Flume1.6以前需要自己自定义Source记录每次读取文件位置,实现断点续传。
File Channel:数据存储在磁盘,宕机数据可以保存。但是传输速率慢。适合对数据传输可靠性要求高的场景,比如,金融行业。
Memory Channel:数据存储在内存中,宕机数据丢失。传输速率快。适合对数据传输可靠性要求不高的场景,比如,普通的日志数据。
Kafka Channel:减少了Flume的Sink阶段,提高了传输效率。
Source到Channel是Put事务
Channel到Sink是Take事务
2)Flume拦截器
(1)拦截器注意事项
项目中自定义了:ETL拦截器和区分类型拦截器。
采用两个拦截器的优缺点:优点,模块化开发和可移植性;缺点,性能会低一些
(2)自定义拦截器步骤
a)实现 Interceptor
b)重写四个方法
initialize 初始化
public Event intercept(Event event) 处理单个Event
public List intercept(List events) 处理多个Event,在这个方法中调用Event intercept(Event event)
close 方法
c)静态内部类,实现Interceptor.Builder
3)Flume Channel选择器
4)Flume 监控器
Ganglia
5)Flume采集数据会丢失吗?
不会,Channel存储可以存储在File中,数据传输自身有事务。
6)Flume内存
开发中在flume-env.sh中设置JVM heap为4G或更高,部署在单独的服务器上(4核8线程16G内存)
-Xmx与-Xms最好设置一致,减少内存抖动带来的性能影响,如果设置不一致容易导致频繁fullgc。
7)FileChannel优化
数仓学习总结
最新推荐文章于 2023-05-09 22:28:59 发布
本文详细总结了数据仓库(数仓)的学习内容,涵盖了数据仓库的输入输出系统、项目需求与架构(包括集群规模计算、框架版本选型)、服务器选型的考量、数据采集模块的总结(如Hadoop、Zookeeper、Flume、Kafka的使用和优化)以及Hive的相关知识(如表结构、优化策略)。此外,还讨论了数据仓库的业务应用场景,如用户行为分析、留存率计算等。
摘要由CSDN通过智能技术生成