大数据项目中如何实现架构选型和集群规划?
1.处理流程
数据源
关系型数据库
表:订单,用户,地址。。。
日志文件: 页面数据、埋点数据
数据采集
sqoop、kettle flume shell
.
数据存储:
HDFS、Hive、HBASE
数据清洗
Mapreduce、hive、sparkCore
数据处理(分析)
Hive、MapReduce
数据应用
展示
2.架构逻辑
(1)用户访问不同的客户端,触发不同的SDK(前端、IOS、Android)
(2)SDK收集所有需要的数据,发送给nginx日志服务器(后台开发)
(3)nginx服务器接收SDK发送过来的日志,并记录下来(后台开发)
(4)使用flume采集所有日志节点上的数据到HDFS统一存放
(5)使用MapReduce对数据进行ETL
(6)使用MapReduce对ETL之后的数据构建分析模型(Hive) 按照需求(topic)构建表
(7)使用Hive对模型数据进行指标分析
(8)将Hive分析结果导出MYSQL中 sqoop
3.集群设计规划
(1)数据量大小(中小型电商网站为例)
访客数:200~500W
页面上:(平均值) 电商:20~40个页面
记录大小:300~1000字节 20个字段:400字节
一条的数据量:
记录数:300W *20 = 6000W
数据大小:60000000 * 0.5kb=30GB
常规的中小型公司一天的数据量:20GB~40GB
数据存储3年 30GB * 365 * 3 * 3(3份)= 98TB
一台机器:8 *2 = 16TB 可用空间:16TB *80% = 12TB
DataNode:90 /12 = 8 (1~3) = 9~11台
公司业务发展比较快,准备的机器就会稍微多一些
(2)所有集群台数
DataNode、Nodemanager、RegionServer:9~11台
Namenode +ResourceManager、HMaster:3~4台
node1: Namenode(active)
node2:Namenode/ ResourceManager(standby)
node3: ResourceManager(active)
Hive、azkaban:2台
hive需要的资源比较少,就是一个MapReduce客户端,所有可以和其他工具放一起
client(beeline) ->hiverserver2 ->metastore
zookeeper:3台、5台
(3)机器的选择
8核16GB 、16核32GB 、32核64GB、32核128GB
Yarn:计算
task:1核1GB
NameNode:16GB
RegionServer(16GB)
系统盘/数据盘:普通硬盘
元数据存储的硬盘/zookeeper的硬盘:SSD
————————————————
版权声明:本文为CSDN博主「leson-xu」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43740680/article/details/96200522