没有合适的资源?快使用搜索试试~ 我知道了~
项目介绍7.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 31 浏览量
2023-08-08
15:07:45
上传
评论
收藏 39KB DOCX 举报
温馨提示
试读
13页
大数据项目+项目介绍+面试辅导
资源推荐
资源详情
资源评论
项目分点:
1. 集群规模:
(8 台物理机:64G 内存,8T 机械硬盘,2T 固态硬盘,10 核 20 线程,戴尔 2 万多一台)
2. 框架结构,画出来
(日志部分:日志服务器,落盘日志,flume,kafka,hdfs,hive,mysql
业务数据部分:mysql-sqoop-hdfs-hive)
3.框架:
Hadoop
NameNode 宕机
1.小文件太多,堆内存溢出 OOM
2.写的太频繁了(也是小文件问题)
DataNode 宕机
DataNode 也称 Slave:DataNode 负责存储实际数据。DataNode 根据对 HDFS 中客户端(或
namenode)的请求执行读取和写入操作。它没有将实际文件存储到 datanode 中。首先,将
文件分为 数据块, 然后将这些块和在那里的块存储在整个机器集群中。在 Hadoop 2.x
中 ,默认块大小为 128 MB。在 hadoop 1.x 中,默认块大小为 64MB。
在 core-site.xml 中,我们添加了 hadoop.tmp.dir 参数。该参数指示 HDFS 文件系统路径在
主/从节点上可用的位置。在此参数添加/ home / hdamin / hadata。此路径表示它是 HDFS
文件系统位置。在此路径中,将创建两个目录,一个目录用于 namenode,另一个目录用于
datanode。
安全模式与 NN 工作模式
namenode 进入安全模式的主要原因是为了确保达到最小复制条件。最小复制条件是整
个 HDFS 中 99.9%的块满足其最小复制级别。(dfs.replication.min 默认 1)
要了解安全模式的状态,请使用命令:
hdfs dfsadmin –safemode get
要输入安全模式,请使用命令:
hdfs dfsadmin -safemode enter
要退出安全模式,请使用命令:
hdfs dfsadmin -safemode leave
小文件
1、HAR
2、Consolidator
3、Hbase 存储
(一)Flume(留了问题:flume,take 出小文件怎么处理,可以根据时间 10min 一次,或者
128M 一次落盘。)
① 我们选了单层 1.7 版本 flume,12 台物理机上部署了四个 flume 节点,
② 对于日志文件,我们保存 30 天,flume 使用的是 tailDir Source,这是 1.6 版本没有
的。具有断点续传功能和读取多目录文件的功能。Memory channel 他比较快。Kafkasink 将
event 采集至 kafka。
③ 由于 flume 的 put 和 take 事务机制,所以他的数据采集准确性比较好。
④ 另外我们还使用了他的拦截器,用来做日志类型区分,和数据轻度过滤,检查时
间戳不对的,json 数据不完整的,就舍弃。
⑤ 为了 sink 到 kafka 的不同主题,使用选择器,将不同类型的 event 发送至不同主题。
⑥ 我们为了监控 flume 的性能还是用了监控器,可以查看 put 和 take 机制尝试次数
和成功次数,
⑦ 如果 put 的尝试次数低于成功次数,说明 flume 集群性能有问题,那我们可以考
虑优化 flume,可以修改配置文件 flume-env 文件把内存从默认 1G 调到 4G
(二)Kafka(留问题:kafka 挂了怎么办,数据重复的问题)
① 搭建 kafka 集群,前后以 flume 分别作为生产者和消费者,我们根据日常的数据量,
以及峰值速度,部署了三台 kafka,
② Kafka 的数据保存七天,副本数是 2,大概给 kafka 集群给了 1T 的资源。
③ 日常每天的数据量大概在 60-70G
④ 一般设置 8-10 个分区,不同的主题可能会不一样。
⑤ 我负责 8 个 topic,(有:浏览主题,评论主题,收藏,启动,故障日志,消息通
知,广告,内容推送等)
⑥ 针对生产者,我们的 ack 设置 1,leader 收到了,就回应生产者 offset,还可以设
置 0,这个很容易丢数据,设置-1 的话,也可以,leader 和 follower 都收到数据,才返回消
息。
⑦ 针对消费者,我们使用 range 的分区分配策略,还可以选择 roundRobin,只不过
roundroubin 对消费者要求线程数一样,并且一个消费者组只消费同一个主题。Range 没有
这些限制,而且分配也均匀。
⑧ Kafka 还有个问题就是相关 ISR 的副本同步队列问题,因为 leader 负责消费者消费
内容。所以 leader 挂了谁上。就有副本同步队列。会根据 leader 和 follower 之间的延迟条数
和延迟时间来判断,后面延迟条数被抛弃了。
⑨ Kafka 还可以设置多目录,可以优化读写性能。
⑩ 内存我们一般调为 4-5G
(三)HDFS(问题:HDFS 读写流程,shuffle 机制,Hadoop 优化。Yarn 调度器,yarn 任务
提交流程,集群的搭建过程)
① Hadoop 作为集群的文件存储系统,在部署的时候要注意配置 HA。
② 也要注意 namenode 和 datanode 的通信,有两个参数可以提升他们通信的顺畅度。
③ 注意把 HDFS 的 namenode 文件 edits 和 fsimage 配置在不同目录下。可以提升
namenode 性能
(四)Hive(hive 的架构,动态分区与静态分区,四个 by,窗口函数,时间系统函数,hive
的优化)
① Hive 作为数据仓库的重要工具,他底层是 MR 程序,因为 MR 程序,代码书写很
复杂,所以为了方便只熟悉 sql 语句的程序员利用 MR ,就有了 Hive。
② Hive 的数据存储到 HDFS 上,元数据信息,存储在 mysql 上,记得给 mysql 进行备
份,使用主从 master 和 slave 结构。以免元数据被破坏了
③ Hive 的分析框架还是 MR,hive 的底层将 HQL 转换成抽象语法树,然后换成查询
块,转换成逻辑查询计划,优化或,编程物理 MR 计划,选择最优的给 Mr 去执行
(五)数仓
① 我们的业务主要分为几个部分,根据物流一部分是相关特快直送的,一部分是在
国内保税仓发货的,然后营销层面会有一些限时特卖板块,还有针对 vip 的专享活动,outlet
的特价商品。
② 针对我们的数仓的输入源,我们前面讲过来的日志数据,其实还包括业务数据,
业务数据我们从 sqoop 里面导进来。
③ 要注意的是,sqoop 是 MR 任务。耗时较长,有可能失败,所以要做好事务一致性
处理,他有两个参数可以利用--staging-table,--clear-staging-table。会讲数据先导入导临时
表,如果失败了,就把临时表给删了,重新执行任务。当我们使用 sqoop 把数据从 hive 往
mysql 里面导的时候,hive 底层的 null 是‘\N’,所以 sqoop 导的时候要额外加参数
--null-string
④ kafka 主题:
日志: 浏览主题,广告,商品相关的,
业务:购物车, 退货,物流信息(根据产品的来源,有两种,香港特快直送,闪电保税仓。
一个从香港发货,一个从内地的保税仓发货),订单,评论主题,评分。
⑤ 我们的数据仓库,搭建了四层,ods,dwd,dws,ads 层。
⑥ Ods 层基本上就是一些原始数据,dwd 层是根据 ods 层表进行解析,然后清楚脏
数据,利用 spark 做 ETL 工具进行过滤脏数据,敏感信息处理,比如电话,身份证脱敏,掩
码,加密,截取等。Dwd 层得到的是比较干净的,能用的数据。Dws 层是根据 dwd 层轻度
聚合来的数据,主要是一些宽表,ads 就是聚合后的数据,数据量很小,一些重要的指标数
据结果,可以导入到 mysql。
⑦ 我们数据仓库是基于维度建模,主要使用星型模型。
⑧ 把表分为四类,实体表,主要是一些对象表比如用户,商家,商品等。
⑨ 维度表,是指指一些业务状态,编号的解释,又叫码表,像地区表,订单状态,
支付方式,审批状态。状态分类。
⑩ 事实表分为周期型事实表和事务型事实表。如果需要后面状态还会改变的就是周
期型事实表,一旦确定了,就是事务性事实表。
⑪ 对于不同的表我们使用不同的同步策略,
同步策略包括全量表,增量表,新增及变化,拉链表
日志表:(商品点击,商品详情,商品详情页表,广告表,错误日志表,消息通知表等)
(1) 商品点击:用户的基本信息字段,动作,商品 id,种类等。
(2) 商品详情页:入口,上一页面来源,商品 id,加载时间,种类。
(3) 广告表:入口,内容,行为,展示风格等。
(4) 错误日志:错误详情
(5) 消息通知表:通知类型,展示时间,通知内容等
这些记录性质的,都使用每日增量
业务表:(购物车,评分,评论,订单表,订单详情表,退货表,用户表,商家表,商
品分类表(一级,二级,三级),支付流水,物流信息等)
(1) 购物车详情:用户 id ,商品 id,商品价格,商家 id ,商品型号,商品分类等
同步策略:这属于周期型事实表因为他可能会随时改变,所以得用每日新增及变化。
(2) 评分表:评分时间,评分用户,评分商品 ,分数等,
同步策略:这是事务性事实表,一般可以用每日增量就可以了。但是如果电商用户对某件商
品用过之后,又想改评论,所以用每日新增及变化
(3) 评论表:评论时间,评论用户,评论商品,评论内容,
剩余12页未读,继续阅读
资源评论
AI+Maynor
- 粉丝: 7w+
- 资源: 167
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功