什么是Hadoop?
hadoop中有3个核心组件
分布式文件系统:HDFS
—— 实现将文件分布式存储在很多的服务器上
分布式运算编程框架:MAPREDUCE
—— 实现在很多机器上分布式并行运算
分布式资源调度平台:YARN
—— 帮用户调度大量的mapreduce程序,并合理分配运算资源
OLTP
Online Transaction Processing 联机事务处理OLAP
Online Analytical Processing 联机实时分析HTAP
Hybrid Transaction & Analytical Processing 混合事务和分析处理MPP
Massively Parallel Processing 大规模并行处理列存储
在基于列式存储的数据库中,数据是按照列为基础逻辑存储单元进行存储的,一列中的数据在存储介质中以连续存储形式存在DAG
是有向无环图(Directed Acyclic Graph)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语法
Debezium
Flink-CDC
YARN
是 Hadoop 2.0 版本以后的资源管理器,即 MapReduce 2.0,相比于 1.0 版本,架构中的各个模块分工明确,在性能和稳定性上都有所提升。YARN 负责整个集群资源的管理和调度,也就是说所有的 MapReduce 都需要通过它来进行调度,支持多种计算框架。
Hive
是Hadoop数据仓库
,能帮助熟悉SQL的人运行MapReduce任务,做一些数据清洗(ETL)、报表、数据分析,时间消耗长,适合离线的批量数据计算
spark
的出现就弥补了MapReduce的不足。 spark是一种基于内存的快速、通用、可扩展的大数据计算引擎,应用于 批处理 用于ETL(抽取、转换、加载)。
flink
Azkaban
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平台,是一个重量级框架。
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构建
即席查询是用户根据自己的需求,灵活的选择查询条件,系统根据用户的选择生成相应的统计报表。普通查应用查询是定制开发的,即席查询是用户自定义查询条件
理解:快速的执行自定义SQL(可能无法提前运算和预测)
Druid
:是一个实时处理时序数据的OLAP数据库,因为它的索引首先按照时间分片,查询的时候也是按照时间线去路由索引。
Kylin
:核心是Cube,Cube是一种预计算技术,基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速。
Presto
:它没有使用Mapreduce,大部分场景下比HIVE快一个数量级,其中的关键是所有的处理都在内存中完成。
Impala
:基于内存计算,速度快,支持的数据源没有Presto多。
SparkSQL
:是spark用来处理结构化的一个模块,它提供一个抽象的数据集DataFrame和DataSet,,并且是作为分布式SQL查询引擎的应用。它还可以实现Hive on Spark,hive里的数据用sparksql查询。