简介
什么是Hadoop?
hadoop中有3个核心组件
分布式文件系统:HDFS
—— 实现将文件分布式存储在很多的服务器上
分布式运算编程框架:MAPREDUCE
—— 实现在很多机器上分布式并行运算
分布式资源调度平台:YARN
—— 帮用户调度大量的mapreduce程序,并合理分配运算资源
专业术语
OLTP
Online Transaction Processing 联机事务处理OLAP
Online Analytical Processing 联机实时分析HTAP
Hybrid Transaction & Analytical Processing 混合事务和分析处理MPP
Massively Parallel Processing 大规模并行处理列存储
在基于列式存储的数据库中,数据是按照列为基础逻辑存储单元进行存储的,一列中的数据在存储介质中以连续存储形式存在
数仓建模以及分层
- ODS
ODS是数据接入层,所有进入数据的数据首先会接入ODS层。一般来说ODS层的数据是多复杂多样的。从数据粒度上看ODS层是粒度最细的数据层。
- DIM
维表层 公共维度汇总层(DIM)主要由维度表(维表)构成。维度是逻辑概念,是衡量和观察业务的角度。维表是根据维度及其属性将数据平台上构建的物理化的表,采用宽表设计的原则。因此,公共维度汇总层(DIM)首先需要定义维度。
- DWD
为数据仓库层,数据明细层的数据应是经过ODS清洗,转后的一致的、准确的、干净的数据。DWD层数据粒度通常和ODS的粒度相同,不同的是该层的数据质量更高,字段更全面等。在数据明细层会保存BI系统中所有的历史数据,例如保存近10年来的数据。例如 对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据)、维度退化脱敏等
- DWS
数据集市层,该层数据是面向主题来组织数据的,通常是星形或雪花结构的数据。从数据粒度来说,这层的数据是轻度汇总级的数据,已经不存在明细数据了。例如 以DWD为基础,按天进行轻度汇总。
- DWT
数据应用层,它是完全为了满足具体的分析需求而构建的数据,也是星形或雪花结构的数据。从数据粒度来说是高度汇总的数据。其汇总的目标主要是按照应用需求进行的。例如 以DWS为基础,按主题进行汇总。
- ADS
ADS层:为各种报表提供数据。
其他
DAG
是有向无环图(Directed Acyclic Graph)- 星型模型
- 雪花模型
存储框架
- HBase 基于hdsf
- TiDB
- ClickHouse
- InfluxDB
- GraphQL
- Elasticsearch
Apache Doris
HBase
Hadoop database 的简称,也就是基于Hadoop列数据库
,是一种OLTP 数据库nosql ,主要适用于海量明细数据(十亿、百亿)的随机实时查询
,如日志明细、交易清单、轨迹行为等
TiDB
开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理HTAP
InfluxDB
时序数据库
ClickHouse
本质是一个OLTP 系统的列式数据库,主要做即时查询,大宽表,单表查询速度极佳,join表现差,明细数据查询
GraphQL
是一种针对 Graph(图状数据)进行查询特别有优势的 Query Language(查询语言),所以叫做 GraphQL
Elasticsearch
是一个分布式的免费开源搜索和分析引擎
Apache Doris
开源MPP分析型数据库产品 ,灵活的多维度查询,join表现比Clickhouse好,明细数据查询,数量级支持TP-PB,需要注意的是Doris是mysql语法
数据同步 转换 组件
- sqoop
- canal
- DataX
- maxwell
Debezium
Flink-CDC
- Kettle
- StreamSets
离线批量计算计算引擎
- MapReduce
- YARN
- hive
- Spark
YARN
是 Hadoop 2.0 版本以后的资源管理器,即 MapReduce 2.0,相比于 1.0 版本,架构中的各个模块分工明确,在性能和稳定性上都有所提升。YARN 负责整个集群资源的管理和调度,也就是说所有的 MapReduce 都需要通过它来进行调度,支持多种计算框架。
Hive
是Hadoop数据仓库
,能帮助熟悉SQL的人运行MapReduce任务,做一些数据清洗(ETL)、报表、数据分析,时间消耗长,适合离线的批量数据计算
spark
的出现就弥补了MapReduce的不足。 spark是一种基于内存的快速、通用、可扩展的大数据计算引擎,应用于 批处理 用于ETL(抽取、转换、加载)。
实时流式计算引擎
flink
- storm
- spark stream
存储层
- hdsf
- Apache Ozone
- s3
- oss
- Ceph
- GlusterFS
数据湖
- Apache Hudi
- Apache Iceberg
- Delta Lake
任务调度工具
Azkaban
- Airflow
- Oozie
DolphinScheduler
airflow
是一个可编程的工作流调度、监控平台。可分布式部署调用,基于DAG(本身没有队列功能,需要使用第三方组件,比如redis、rabbitMQ),airflow用python进行编程
开发,可以进行丰富的任务处理,包括bash命令的执行、python代码调用、发送邮件、发送Http请求等。
airflow websever -D启动airflow的web界面
azkaban
是一个工作流监控、调度工具。可以部署分布式,通过在job文件中以properties格式配置任务并打包成zip包即可进行调度。azkaban内部架构包括三部分
excutorServer、webServer、mysql,分别负责任务的执行、web界面的显示、调度信息的存储。
azkaban是一个轻量级的调度器。
oozie
是一个基于hadoop的分布式的工作流调度框架,oozie通过在xml文件中配置任务来进行调度,执行调度时会启动MR任务,依赖于hadoop平台,是一个重量级框架。
Apache DolphinScheduler
是一个分布式、易扩展的可视化DAG工作流任务调度平台,解决数据处理流程中错综复杂的依赖关系
所有流定时操作都是可视化的,通过拖拽来绘制DAG,配置数据源及资源,同时对于第三方系统,提供api方式的操作
Hadoop集群 管理工具,大数据运维
- Ambari
- CDH (Cloudera版本)
- HDP (Hortonworks版)
- CDP (Cloudera和Hortonworks合并后 收费)
- USDP (国人ucloud版)
- CRH (基于 Apache Ambari + Apache BigTop)
- TDH (星环 收费闭源)
Ambari是Apache软件基金顶级项目,它是一个基于web的工具,用于安装、配置、管理和监视Apache Hadoop集群,支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同样还提供了集群状况仪表盘,比如heatmaps和查看MapReduce、Pig、Hive应用程序的能力,以友好的用户界面对它们的性能特性进行诊断。
CDH 是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建
Hortonworks 主打产品是Hortonworks Data Platform (HDP),也同样是100%开源的产品,HDP除了常见的项目外还包含了Ambari,一款开源的安装和管理系统。HCatalog,一个元数据管理系统。
即席查询组件
即席查询是用户根据自己的需求,灵活的选择查询条件,系统根据用户的选择生成相应的统计报表。普通查应用查询是定制开发的,即席查询是用户自定义查询条件
理解:快速的执行自定义SQL(可能无法提前运算和预测)
-
Druid
:是一个实时处理时序数据的OLAP数据库,因为它的索引首先按照时间分片,查询的时候也是按照时间线去路由索引。 -
Kylin
:核心是Cube,Cube是一种预计算技术,基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速。 -
Presto
:它没有使用Mapreduce,大部分场景下比HIVE快一个数量级,其中的关键是所有的处理都在内存中完成。 -
Impala
:基于内存计算,速度快,支持的数据源没有Presto多。 -
SparkSQL
:是spark用来处理结构化的一个模块,它提供一个抽象的数据集DataFrame和DataSet,,并且是作为分布式SQL查询引擎的应用。它还可以实现Hive on Spark,hive里的数据用sparksql查询。
BI 工具
产品 | 国内/外 | 是否开源 | 主要标语 |
---|---|---|---|
Tableau | 国外 | 否 | Find easy answers to hard questions |
PowerBI | 国外 | 否 | 在需要时理清思路 |
superset | 国外 | 是 | 一个现代数据探索和可视化平台。 |
MetaBase | 国外 | 是 | Have questions about your data? Metabase has answers。 |
QuickBI | 国内 | 否 | 一个专为云上用户量身打造的新一代智能 BI 服务平台。 |
SugarBI | 国内 | 否 | 企业可使用 Sugar BI有效助力自己的业务决策 |
FineBI | 国内 | 否 | 新一代自助大数据分析的 BI 工具;使用自助式 BI 工具,释放企业数据潜力。 |
永洪 BI | 国内 | 否 | 释放数据价值,人人都是数据分析师。 |
DataEase | 国内 | 是 | 人人可用的数据可视化分析平台 |
cube.js | 国外 | 是 | 这个是一个通用的数据分析框架,里边包含了自助式的dashboard |
ETL 套件工具
- kettle
- StreamSets
- Apache NiFi
- Airbyte