分布式数据库

1.分布式概念:
 

数据分散存储在多台物理节点,对外表现为单一逻辑数据库。

CAP定律

C:一致性

A:可用性

P:分区容错性

2.典型数据库

典型分布式数据库
MySQL 分库分表(Sharding-JDBC、MyCat)
TiDB(NewSQL,MySQL 兼容,分布式事务)
OceanBase(金融级分布式关系型)
MongoDB(文档型分布式)
HBase(列式分布式 KV,依赖 Hadoop)
Redis Cluster(分布式缓存)
ClickHouse(分布式分析型)

3.Hadoop知识点

1. HDFS(分布式文件系统)
作用:海量数据高可靠、高吞吐存储
角色:
NameNode:管理元数据(目录树、文件块位置),单点,可 HA
DataNode:实际存储数据块
SecondaryNameNode:辅助合并 edits log,不是热备
特点:
数据块默认 128MB/256MB
多副本(默认 3 副本),机架感知
一次写入、多次读取,不支持随机修改
常见问题:小文件过多压垮 NameNode
2. YARN(资源调度平台)
作用:统一管理集群 CPU / 内存,调度各类计算框架
核心组件:
ResourceManager(RM):全局资源管理
NodeManager(NM):单节点资源管理
ApplicationMaster(AM):单个任务管理者
Container:资源隔离容器
3. MapReduce(分布式离线计算)
思想:分而治之,Map 拆分 + Reduce 聚合
流程:Input → Map → Shuffle → Reduce → Output
特点:基于磁盘,吞吐高、延迟高
缺点:迭代计算效率差(Spark 用来替代它)

4.spark知识点

(1) Spark 基础
基于内存的分布式计算引擎,比 MapReduce 快 10~100 倍
核心抽象:RDD(弹性分布式数据集)
(2) RDD 特性
不可变
分区(Partition)
惰性求值(Lazy Evaluation)
血缘关系(Lineage)容错
持久化(cache/persist)

RDD 两大操作:
Transformation(转换)
懒执行(不立即算)
例:map、filter、flatMap、groupBy、join
Action(动作)
触发计算、返回结果
例:count、collect、save、take、foreach
(3)算子分类
Transformation(转换,懒执行)
map、flatMap、filter、reduceByKey、groupByKey 等
Action(动作,触发执行)
count、collect、reduce、foreach、save 等
(4)Spark 核心架构
Driver   主控
Executor  工作节点
Task   
Stage 划分(依据 Shuffle)
(5)Spark 核心组件
Spark Core
Spark SQL(DataFrame/Dataset)
Spark Streaming(微批处理)
Structured Streaming
Spark MLlib(机器学习)
GraphX(图计算)
(6)Spark 调度与优化
DAG Scheduler
Task Scheduler
数据本地化
数据倾斜处理(加盐、预聚合)
广播变量、累加器

5.数据计算引擎

(1)Spark(内存计算引擎)
核心抽象:RDD(弹性分布式数据集)
特点:懒执行、惰性求值、血缘关系容错
算子分类:
Transformation:转换(懒)map/flatMap/filter/reduceByKey
Action:动作(触发计算)count/collect/save
依赖:
窄依赖:一对一,无 Shuffle
宽依赖:多对多,产生 Shuffle,划分 Stage
组件栈:
Spark Core
Spark SQL(DataFrame/Dataset)
Spark Streaming(微批流处理)
Structured Streaming(高端流处理)
MLlib(机器学习)
GraphX(图计算)
(2) Flink(流式计算引擎,当前主流)
定位:真正的流处理,批是流的特例
核心优势:
低延迟、高吞吐
支持 Explicit Event Time 事件时间
强大的 Watermark 水印 处理乱序
Exactly-Once 精确一次语义
核心模型:Stream → Transformation → Sink
常用场景:实时计算、实时数仓、实时监控
(3)Hive(数据仓库)
本质:HDFS 上的结构化数据 + SQL 翻译为 MR/Spark
特点:类 SQL 语言 HQL,适合离线分析
元数据存储:默认 Derby,生产用 MySQL
数据存储格式:Text/ORC/Parquet(ORC、Parquet 列式存储,性能高)
不适合:高并发查询、低延迟交互

6.kafka分布式消息队列
核心:高吞吐、持久化、分布式、可回放
概念:
Topic:主题
Partition:分区(并行关键)
Replica:副本
Producer、Consumer、Consumer Group
应用:日志收集、实时数据流、解耦系统
可靠性:ISR 机制,ACK 策略

7.分布式Nosql数据库
(1)HBase
列式分布式 KV 数据库,基于 HDFS
适合:海量结构化 / 半结构化数据、随机实时读写
核心:RowKey 设计至关重要(防热点)
架构:Master + RegionServer + Zookeeper
(2) Redis
内存 KV 缓存,支持多数据结构
集群模式:Redis Cluster、分片
(3)Elasticsearch(ES)
全文检索 + 分布式存储
场景:日志检索、用户行为分析、站内搜索

8.调度 & 协调工具
(1)Zookeeper
分布式协调服务
功能:配置管理、分布式锁、主从选举、服务发现
一致性协议:ZAB
(2)Azkaban / DolphinScheduler
工作流调度工具
管理 Hive/Spark/Sqoop 定时任务依赖

9.数据库整套流程

采集:Flume/Log → Kafka
离线:Kafka → HDFS → Hive/Spark 离线计算
实时:Kafka → Flink/Spark Streaming 实时计算
服务:结果存入 HBase/Redis/ES → 前端应用
调度:Azkaban/DolphinScheduler
协调:Zookeeper

10.Hive概念知识点

(1)本质

构建在 Hadoop 之上的数据仓库工具
提供类 SQL 接口(HQL),将 SQL 翻译成 MapReduce/Spark/Tez 任务执行
本身不存储数据,数据存在 HDFS,元数据存在关系型数据库(MySQL)
适合海量离线数据分析,不适合高并发、低延迟 OLTP

(2)三大组件

Driver:驱动,接收 HQL,解析优化
Metastore:元数据服务
Compiler:编译器,生成执行计划

(3)HQL
Hive SQL,语法接近标准 SQL
支持:DDL、DML、join、group by、窗口函数等
不支持:行级更新删除(旧版)、事务有限
(4)数据存储格式
Hive 本身不存数据,只指定格式:
TextFile:文本格式,默认,易读但性能差
SequenceFile:二进制
ORC:高性能列式存储,压缩好,查询快
Parquet:主流列式存储,兼容 Spark、Flink
(5) 内部执行机制
写 HQL
驱动解析、编译、优化
转为 MR/Spark 任务
提交到 YARN 运行
读取 HDFS 数据 → 输出结果

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐