为什么做这个项目

随着公司的发展,老板需要详细的了解公司的运营情况。比如,日活、新增、留存、转化率等。所以公司决定招聘大数据人才来做这个项目,目的是为老板做决策提供数据支持。

数仓概念

数据仓库的输入数据源和输出系统分别是什么?

(1)输入系统:前端埋点产生的用户行为数据、JavaEE 后台产生的业务数据、个别公司有爬虫数据。

(2)输出系统:报表系统、用户画像系统、推荐系统。

项目架构

框架版本选型

1)Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员)。

2)CDH6.3.2:国内使用最多的版本。CDH 和 HDP 合并后推出,CDP7.0。收费标准,10000 美金一个节点每年。(不建议使用)

3)HDP:开源,可以进行二次开发,但是没有 CDH 稳定,国内使用较少。

4)云服务选择

(1)阿里云的 EMR、MaxCompute、DataWorks

(2)腾讯云 EMR、流计算 Oceanus、数据开发治理平台 WeData

(3)华为云 EMR

(4)亚马逊云 EMR

星环国际、金蝶。。。神策、数梦、袋鼠云

*注:着重标出的为公司实际生产中的常用版本。

服务器选型

服务器使用物理机还是云主机?

1)机器成本考虑:

(1)物理机:以 128G 内存,20 核物理 CPU,40 线程,8THDD 和 2TSSD 硬盘,单台报价 4W 出头,惠普品牌。一般物理机寿命 5 年左右。

(2)云主机,以阿里云为例,差不多相同配置,每年 5W。华为云、腾讯云、天翼云。

2)运维成本考虑:

(1)物理机:需要有专业的运维人员(1 万 * 13 个月)、电费(商业用户)、安装空调、场地。

(2)云主机:很多运维工作都由阿里云已经完成,运维相对较轻松。

3)企业选择

(1)金融有钱公司选择云产品(上海)。

(2)中小公司、为了融资上市,选择云产品,拉到融资后买物理机。

(3)有长期打算,资金比较足,选择物理机。

集群规模

1)硬盘方面考虑

2)CPU 方面考虑

20 核物理 CPU 40 线程 * 8 = 320 线程(指标 100-200)

3)内存方面考虑

内存 128g * 8 台 = 1024g (计算任务内存 800g,其他安装框架需要内存)

128m =》512M 内存

=》

200g 数据 、800g 内存

4)参考案例说明

根据数据规模搭建集群(在企业,干了三年 通常服务器集群 5-20 台之间)

(1)参考腾讯云 EMR 官方推荐部署

Master 节点:管理节点,保证集群的调度正常进行;主要部署 NameNode、ResourceManager、HMaster 等进程;非 HA 模式下数量为 1,HA 模式下数量为2。

  • Core 节点:为计算及存储节点,我们在 HDFS 中的数据全部存储于 core 节点中,因此为了保证数据安全,扩容 core 节点后不允许缩容;主要部署 DataNode、NodeManager、RegionServer 等进程。非 HA 模式下数量≥2,HA 模式下数量≥3。

  • Common 节点:为 HA 集群 Master 节点提供数据共享同步以及高可用容错服务;主要部署分布式协调器组件,如 ZooKeeper、JournalNode 等节点。非 HA 模式数量为 0,HA 模式下数量≥3。

(2)数据传输数据比较紧密的放在一起(Kafka、clickhouse)

(3)客户端尽量放在一到两台服务器上,方便外部访问

(4)有依赖关系的尽量放到同一台服务器(例如:Ds-worker 和 hive/spark,ClickHouse必须单独部署