大数据项目架构选型和集群规划

大数据项目中如何实现架构选型和集群规划?

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

你可能感兴趣的:(大数据,大数据项目架构,集群规划)