集群规模 2台namenode + 1台resoucemanager + 7台zookeeper + 2台 clickhouse = 12台节点
plaintext自动换行:关放大阅读展开代码hadoop集群规模(12台) 服务器: 云服务器,单台配置 128G内存,64c ,磁盘 20T 集群规模: 10台 + 2台ck 磁盘: 1天100G 数仓分层: ods: 压缩后,10+g dwd: 压缩后,10+G dws: 50g ads: 忽略 ECHO is off. 70g * 3副本 * 保存365天 / 0.7 = 约110T ECHO is off. kafka: 100g * 2副本 * 保存3天 / 0.7 = 约1T 算上实时分层 = 1T * 3倍 = 3T ECHO is off. 内存: 单台128G内存,80% = 100G给yarn的nodemanager 计算资源 = 8 * 100G = 800G内存 ECHO is off. cpu: 单台 64c , 80% = 28c给yarn的nodemanager 8 * 28c= 224c 参考方案: 基础 10台 + 2台clickhouse(ck和yarn要分开部署) ECHO is off. =》 3台Master节点: 部署 namenode(2HA)、resourcemanager这种master角色 64G内存 + 16c ECHO is off. =》 台 worker节点: 部署 datanode、nodemanager这种worker角色 128+64 =》 2台 clickhouse节点: 128G+64C =》 第一层flume部署在日志服务器上,不属于我们维护的集群(后端开发来维护)
plaintext自动换行:关放大阅读展开代码1)ODS层(每天110G左右): (1)用户行为数据(100g => 1亿条;1g => 100万条) 曝光(60g or 600万条)、页面(20g)、动作(10g)、故障 + 启动(10g) 2)业务数据(1-2g => 100万-200万条) 登录(20万)、注册(100-1000); 加购(每天增量20万、全量100万)、下单(10万)、支付(9万)、物流(9万)、取消下单(500)、退款(500); 领取优惠卷(5万)、使用优惠卷下单(4万)、使用优惠卷支付(3万); 点赞(1000)、评论(1000)、收藏(1000); 用户(活跃用户100万、新增1000、总用户1千万)、商品SPU(1-2万)、商品SKU(10-20万)、活动(1000)、时间(忽略)、地区(忽略) 2)DWD层 + DIM层: 和ODS层几乎一致(每天110G左右); 3)DWS层 轻度聚合后,20g-50g。 4)ADS层 10-50m之间,可以忽略不计。
plaintext自动换行:关放大阅读展开代码kafka集群规模(3台) 200万日活,每人每天平均产生100条数据,每条数据0.5-2k,平均1k ECHO is off. 每天的数据大小 = 200G(每1万日活,对应1G数据,对应100万条) ECHO is off. 平均条数 = 2000条/s (说估算值,大概2000多条/s) 平均速率 = 约 2M/s ECHO is off. 高峰时段 = 中午11-14 和晚上下班 19-24点左右 高峰条数 = 平均*20倍 = (大概值,大概4万条/s左右) 高峰速率 = 约 40 M/s ECHO is off. 低谷时段 = 半夜 3-4点 低谷条数 = 几十条/s 低谷速率 = 几十k/s ECHO is off. 速率、条数、总大小在哪看到的? =》监控器 : kafka eagle ECHO is off. 每天200G * 2副本 * 3天保存时间 /0.7 = 约2T,磁盘够够的 考虑到实时分层 2T * 3 = 3T ECHO is off. 内存: 1g --》10g cpu: 8 1 3 ===》 16 2 6 网卡: 千兆 磁盘: 够用
技术部下的大数据组,公司大概部门分布
sql自动换行:关放大阅读展开代码-- 求某个页面同时浏览人数最多的前三个时间段,求出同时浏览人数,和时间段 /* nums, start_date, end_date 7, 2021-09-27 08:00:00, 2021-09-27 08:30:00 6, 2021-09-27 08:30:00, 2021-09-27 09:30:00 6, 2021-09-26 13:00:00, 2021-09-27 08:00:00 5, 2021-09-27 09:30:00, 2021-09-27 10:30:00 5, 2021-10-06 09:10:00, 2021-10-06 10:00:00 */ select nums, start_date, end_date from ( -- 查询在线人数维持的时间段,并排序 select nums, log_date start_date, lead(log_date, 1, '9999-12-30') over (order by log_date) end_date, dense_rank() over (order by nums desc) rn from ( -- 查询出按照日期升序,截止每天的最多在线人数 select log_date, sum(flag) over (order by log_date) nums from (select user_id, login_ts log_date, 1 flag from user_login_detail union select user_id, logout_ts, -1 flag from user_login_detail) t1) t2) t3 -- 按照最多的在线人数过滤出时间段,可能存在多段, where rn <=3
本文作者:hedeoer
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!