赞
踩
今天开始学习数仓的内容,之前花费一年半的时间已经学完了 Hadoop、Hive、Zookeeper、Spark、HBase、Flume、Sqoop、Kafka、Flink 等基础组件。把学过的内容用到实践这是最重要的,相信会有很大的收获。
数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。(数据仓库的目的不只是简单的存储数据,而是把收集起来的数据进行计算分析,得到有价值的信息)
数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等
业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中(要求响应要快)。
用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
爬虫数据:通常是通过爬虫等技术获取其他公司网站的数据。
数据仓库并不是数据的最终目的,而是为数据最终的目的做准备,包括比如:备份、清洗、聚合、统计等。
考虑因素:数据量大小、业务需求、行业内经验、技术成熟度(比如spark/flink)、开发维护成本、总成本预算等
这里 Kafka 不管是离线数仓还是实时数仓都是一个不可缺少的中间件。
我们使用 Apache 版本,但是组件的兼容性需要我们自己解决。
CDH 版本很稳定但是它是收费的,HDP 版本可以二次开发但是不稳定。
确认集群规模:
算到这里需要大概 8T * 10 台服务器,但是数仓是分层的,我们的数据在 ODS 层(原始数据层)是主要的消耗磁盘的地方,而其他几层也是需要消耗磁盘存放中间结果的,所以结果应该比我们预估的更大!但是又考虑到数据在存储时可以压缩(100GB 可以压缩到 5~10GB左右),所以我们其实只需要 3 台服务器就可以保证半年内每天 100 GB 数据的计算存储,5~10 台服务器则可以保证 2~3 年数据该数据的计算和存储。
在企业中通常会搭建一套生产集群(十几、甚至几十几百台)和一套测试集群(3~5台)。生产集群运行生产任务,测试集群用于上线前代码编写和测试。
服务名称 | 子服务 | 服务器 hadoop102 | 服务器 hadoop103 | 服务器 hadoop104 |
HDFS | NameNode | √ | ||
DataNode | √ | √ | √ | |
SecondaryNameNode | √ | |||
Yarn | NodeManager | √ | √ | √ |
Resourcemanager | √ | |||
Zookeeper | Zookeeper Server | √ | √ | √ |
Flume(采集日志) | Flume | √ | √ | |
Kafka | Kafka | √ | √ | √ |
Flume (消费Kafka日志) | Flume | √ | ||
Flume (消费Kafka业务) | Flume | √ | ||
√ | √ | √ | ||
MySQL | MySQL | √ | ||
DataX | √ | √ | √ | |
Spark | √ | √ | √ | |
DolphinScheduler | ApiApplicationServer | √ | ||
AlertServer | √ | |||
MasterServer | √ | |||
WorkerServer | √ | √ | √ | |
LoggerServer | √ | √ | √ | |
Superset | Superset | √ | ||
Flink | √ | |||
ClickHouse | √ | |||
Redis | √ | |||
Hbase | √ | |||
服务数总计 | 20 | 11 | 12 |
到这里,数仓基本的概念是了解了,这个项目会用到哪些技术也基本明白了(Hadoop、Hive、MySQL、Spark、Flume、Kafka、HBase、DataX等),接下来就是慢慢熟练之前学的哪些框架在实际应用中是怎么使用的,一些没学过的框架(比如 DataX、Superset、DoplhinScheduler)慢慢补,都是小工具 so easy。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。