没有合适的资源?快使用搜索试试~ 我知道了~
项目介绍6.docx大数据项目+项目介绍+面试辅导
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 166 浏览量
2023-08-08
15:07:46
上传
评论
收藏 1.08MB DOCX 举报
温馨提示
试读
44页
大数据项目+项目介绍+面试辅导 大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导大数据项目+项目介绍+面试辅导
资源推荐
资源详情
资源评论
1.自我介绍
一.入行原因
我大学期间自学了半年的 Java,有了一定的 Java 基础,我平时习惯在图书馆看一些前
沿技术的杂志,偶然看到大数据这门技术,开始上网查找一些关于大数据的资料,发现大数
据很有前景,于是对大数据技术产生了浓厚的兴趣,我决定将大数据作为以后的工作方向,
毕业前半年,结合图书馆以及网上的一些教程,我自学了大数据的一些基础知识,了解了数
据采集平台的搭建,对 hadoop 框架以及 kafka,flume 等组件有了一定的认识 ,毕业后,我
顺利进入 xxx 公司,参与大数据平台的搭建。
二.项目经历
2017 年,我来到这个公司,是从搭建数据平台开始,大概花了半年左右,将平台搭建起来,
能够稳定的运行,后面公司决定搭建离线数仓平台,刚开始我对数仓项目没有太多经验,数
仓没有分层,直接从 ods 层拿数据分析计算,每算一个指标都要 etl join ,效率太低了,后来
研究了很久,我们借鉴了阿里的数仓分层,将数仓分为 ods,dwd,dws,ads 这四层,后来
在这个基础上又进行了优化升级,增加了 dwt 层,将每层的任务进一步细分,解决问题的
时候更容易一些,这个数仓的核心指标都是由我来分析的(留存率,转化率,gmv,复购率,
活跃率),包括框架的调优都是我来做的,这个数仓目前还在做,2019 年初,公司需要上实
时项目,公司让我去参与实时项目的调研与搭建。
总结三年前来到公司,搭建数据平台,半年后平台搭建完毕并稳定运行,半年后,由于我的
出色表现开始搭建数仓,从数据平台搭建完后我一直负责数仓项目,最近一年前,我开始负
责开发实时项目,数仓的一些优化和一些疑难问题还是由我带着去做,主攻实时项目,
2.数据平台搭建及遇到的问题
2.1 集群的选型
物理机:128G 内存,8T 机械硬盘,2T 固态硬盘,20 核 40 线程,惠普 4 万多一台。
云服务器:同样的配置,阿里云 5W/年。
物理机需要有专门的运维人员,云主机由阿里云完成。我们公司综合各种情况之后使用
的是云主机
2.2 确定集群规模
1:用户行为数据:
每日活跃人数:100 万
每人产生数据量:100 条
每天产生条数:100*100=一亿条
每条日志数据大小:0.5k-2k 之间,平均每条 1k 左右
大概每天数据大小:大约 100G 左右
数仓层级:
ods 层:采用 lzo 压缩之后 10G 左右
dwd 层:采用 lzo 压缩+parquet 存储后 10G 左右
dws 层:采用 lzo 压缩+parquet 存储后 10G
dwt 层:为了快速计算不采用压缩 40G
Ads 层:数据量很小,忽略不计
保存三个副本:70*3=210G 左右
半年不扩容:210*180=37T 左右
预留 30%:37/0.7=53T 左右
2:kafka 中数据:
1:2 个副本:100*2=200G
2:保存 3 天:200*3=600G
3:预留 30%:600/0.7=857G ->900G
3:flume 数据忽略不计
4:业务数据:
每天活跃用户:100 万
每天下单用户:10 万
每人每天产生业务数据:10 条
每条数据 1k 左右:10 万*10 条*1k=1g
数仓五层存储:1g*4=4g
保存三个副本:3*4=12g
半年不扩容:12*180=2.1T
预留 30%:2.1T/0.7=3T
5:集群总规模:53T+900G+2T=56T 服务器数量=56T/8=7 台
2.3 项目架构及遇到的问题
( 准备笔和纸,用画图的方式来说)
第一段:
从采集平台开始说,
日志数据:前端埋点数据通过 Nginx,将数据发送到三台日志服务器,
业务数据:通过前端业务交互,将数据发送到 Nginx,然后 Nginx 将业务数据发送到三台业
务服务器,然后存到 MySQL,(切记,先画到此处,)
(接下来,配合所画的图,先详细讲一下用户行为数据采集的过程,)用 Nginx 的作用是负
载均衡,Nginx 将数据传输到日志服务器,日志服务器会将数据落盘,落盘数据会保留 30
天,起到备份的作用,如果后续组件出现数据丢失问题,可以重新通过落盘的数据再跑一次
任务,我们公司的日活大概 100 万左右,三台日志服务器足够使用,
2.3.1 日志服务器到 Flume 阶段
前 Flume 阶段:(flume 的组成,三个器:拦截器、选择器、监控器以及优化)
一.flume 版本的选择,三个组件的选择
日志服务器中的数据会被 flume 采集,选择 flume 是因为它是擅长采集日志文件,flume 我
选择的是 1.7 版本。flume 由 source,channel,sink 三部分组成,Source 我选择的是
taildirsource,因为 tairdirsource 支持断点续传和同时监控多个目录,tairdirsource 挂掉后不会
丢失数据,数据重复的问题可以放在下一级解决,tairdirsource 是从 flume1.7 后面产生的,
在之前版本,是不支持断点续传的,需要通过自定义 source 的方式来实现。数据通过
source,进入到 channel,channel 有 memory channel,file channel,kafka channel 三种方式,我
选择的是 kafka channel, 因为 kafka channel 不仅传输效率高,同时还可以直接对接后面的
kafka 模块,在 flume1.7 之前的版本,kafka channel 是存在一个 bug 的,数据通过 kafka channel
时,会始终带着一个 topic 头,调整参数后也去除不了,也就是说,在传输数据时,topic 头
和数据组合在一起,后续还需要对数据进行处理,影响平台性能。memory channel 是基于内
存,挂掉后会丢失一部分数据,因为传输的是日志数据,丢掉一两条数据影响不大,可以作
为备选方案,File channel 虽然可靠性好,但是传输效率比较低,一般像银行这些对数据敏
感的企业会选择 File channel
二.使用拦截器,选择器,监控器
①我们在 flume 中使用了两种拦截器,使用 etl 拦截器,将不合规范的 json 数据进行清洗,
过滤掉这些数据后能提高传输效率,同时还使用了事件分类拦截器,配合多路复用选择器将
不同类型的日志发往不同的 kafka topic,自定义拦截器需要实现 Interceptor,重写四个方法,
分别是初始化方法,close 方法,单个 event 的处理方法,以及多个 event 的处理方法,同时
还需要实现一个静态内部类 Interceptor.Builder,然后重写 build 方法和 configure 方法,然后
对程序进行打包,上传到 flume 的 lib 包下,在 flume 的配置文件中,需要添加拦截器的全
类名+$+builder。
②这里介绍一下选择器,选择器有两种:Replicating Channel Selector 和 Multiplexing Channel
Selector, 我们使用的是 Multiplexing Channel Selector,因为 Replicating Channel Selector 是
将数据发往所有的通道,而 Multiplexing Channel Selector 是将数据选择性的发往不同的通道,
这里我们需要把不同的日志类型写入到不同的 Kafka topic 中去,
③我们还用到了 Ganglia 监控器,主要用来监控 flume 的运行状况,如果监控到 flume 中的 put
和 take 事务尝试的次数远远大于成功次数,说明我们需要优化 flume,flume 默认内存是
2000M,可以调大到 4g 到 6g,像双十一或六一八搞活动时,flume 仍然是扛不住的,这个
时候,我们需要提前增加对应的日志服务器,将 flume 部署上,当活动过去后,再将添加的
日志服务器移除掉,直接在 aliyun 购买日志服务器即可,非常方便,这里注意,flume 要和
日志服务器部署在同一台节点上,这样可以减少网络 io。
三.Flume 挂的的情况(考虑数据丢失和重复问题)
我们还遇到 flume 挂了的情况,但是这种情况不用担心,因为我们使用的是 kafka channel,
挂了后数据依然保存在磁盘,而 tairdirsource 支持断点续传,不会丢失数据,最多会造成数
据的重复,由于是普通日志,这点重复我们是可以接受的,(如果需要处理,可以在下一级
处理(hive dwd sparkstreaming flink 布隆)、去重手段(groupby、开窗取窗口第一条、
redis)),而且 flume 运行比较稳定,挂的情况比较少。
剩余43页未读,继续阅读
资源评论
- 韩朋宸2023-11-01资源不错,对我启发很大,获得了新的灵感,受益匪浅。
- kef1312023-09-20非常有用的资源,可以直接使用,对我很有用,果断支持!
AI+Maynor
- 粉丝: 7w+
- 资源: 170
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功