根据企业的需求,业务数据存储在 MySQL 中,选择 Sqoop 作为 ETL 工具,HDFS 临时保存 Sqoop 抽取的数据。数据仓库部分选择主流的 Hive,并使用 Tez 进行优化;其中 ADS 层的数据会导出到 MySQL 中,便于前端业务进行快速调用。使用 Presto 作为快速查询的工具,Azkaban 作为调度工具。
数据的生成会使用脚本来进行;整个 ETL 流程、数仓数据处理,也会封装为运行脚本,交由 Azkaban 来进行定时运行和调度。
各组件版本如下,学习环境尽量保持一致,避免版本不一致带来的操作问题。
使用 3 台虚拟机来进行搭建集群,分别为 Node01、Node02、Node03。集群的规划如下:
其中 Hadoop 一共 3 个节点,主节点搭建在 Node01 上,从节点在 Node01-Node03 上分别有一个。
Hive&Tez 搭建在 Node03 上,单节点部署。MySQL 搭建在 Node02 上。Sqoop 搭建在 Node03 上。
Azkaban 作为调度引擎,在 3 台节点上各布置一个,以 Node02 作为主节点。Presto 同样在 3 台节点上布置,以 Node02 作为主节点。
这样基本上每台服务器的负载比较均衡。