编辑
2025-10-21
部署文档
00
请注意,本文编写于 85 天前,最后修改于 85 天前,其中某些信息可能已经过时。

目录

🏗️ 整体架构层次
🔧 各组件详细解释
1. ZooKeeper - 分布式协调服务(基础层)
2. Hadoop - 分布式存储与计算基础
包含三个核心:
3. HBase - 分布式NoSQL数据库
4. Hive - 数据仓库工具
SQL-on-Hadoop
5. Flink - 流处理引擎
6. InfluxDB - 时序数据库
7. Phoenix - HBase的SQL皮肤
为HBase提供SQL接口
8. Sentinel - 流量治理
微服务流量防护
9. Seata - 分布式事务
解决微服务事务问题
技术组合:Flink + HBase + Phoenix
技术组合:Flink + InfluxDB + HBase
技术组合:Hive + HBase + Flink
技术组合:Sentinel + Seata + ZooKeeper

🏗️ 整体架构层次

层次 组件 作用 基础设施层 Hadoop HDFS 分布式存储基础 资源管理层 ZooKeeper 分布式协调 数据存储层 HBase, Hive 结构化/非结构化数据存储 计算引擎层 Flink, Hadoop MapReduce 流批数据处理 数据集成层 InfluxDB, Phoenix 时序数据、SQL接口 服务治理层 Sentinel, Seata 微服务治理、事务管理

🔧 各组件详细解释

1. ZooKeeper - 分布式协调服务(基础层)

用途:分布式系统的"神经系统"

  • 服务发现与注册
  • 分布式锁
  • 配置管理
  • 领导者选举
  • 集群状态协调 实际场景:

HBase RegionServer 状态管理

Kafka 集群协调

Flink JobManager 高可用

2. Hadoop - 分布式存储与计算基础

包含三个核心:

HDFS (Hadoop Distributed File System) # 分布式存储

YARN (Yet Another Resource Negotiator) # 资源调度

MapReduce # 批处理计算

架构关系:

HDFS (存储) → MapReduce (计算) → YARN (资源管理)

为 HBase、Hive、Flink 提供底层存储

3. HBase - 分布式NoSQL数据库

基于HDFS的列式数据库

  • 海量结构化数据存储
  • 实时随机读写
  • 强一致性
  • 自动分片和负载均衡 典型应用:

用户画像数据

实时日志存储

物联网设备数据

4. Hive - 数据仓库工具

SQL-on-Hadoop

  • 将SQL转换为MapReduce任务
  • 数据ETL处理
  • 离线数据分析
  • 数据仓库建设

工作流程: sql-- Hive SQL → MapReduce任务 → HDFS数据

SELECT user_id, COUNT(*) FROM user_behavior WHERE dt = '2024-01-01' GROUP BY user_id;

实时计算核心

  • 低延迟流处理
  • 精确一次语义(Exactly-once)
  • 状态管理
  • 复杂事件处理 实时处理场景:

数据源(Kafka) → Flink(实时计算) → 结果存储(HBase/MySQL)

实时风控、实时推荐、实时监控

6. InfluxDB - 时序数据库

专门处理时间序列数据

  • 高性能写入和查询
  • 时间窗口聚合
  • 数据降采样
  • 监控指标存储 使用场景:

系统监控指标

IoT传感器数据

应用性能监控(APM)

7. Phoenix - HBase的SQL皮肤

为HBase提供SQL接口

  • 标准SQL语法
  • 二级索引
  • 事务支持
  • JDBC驱动 价值:

sql

-- 原本复杂的HBase API操作 -- 变成简单的SQL查询 SELECT * FROM user_table WHERE age > 18;

8. Sentinel - 流量治理

微服务流量防护

  • 流量控制
  • 熔断降级
  • 系统负载保护
  • 实时监控

9. Seata - 分布式事务

解决微服务事务问题

  • AT模式(自动事务)
  • TCC模式(尝试-确认-取消)
  • Saga模式
  • XA模式 🔄 典型数据流架构 批处理数据流
数据源 → Flume/Kafka → HDFS → Hive(ETL) → HBase(服务) → 业务应用 ↓ MapReduce(分析)

流处理数据流

实时数据 → Kafka → Flink(实时计算) → HBase/InfluxDB → 实时大屏/告警 ↓ Redis(缓存)/MySQL(业务数据)

查询分析流程

业务请求 → Phoenix(SQL) → HBase(存储) → 返回结果 ↓ Hive(离线分析) → 报表系统

🎯 具体业务场景组合 场景1:实时用户行为分析 bash

技术组合:Flink + HBase + Phoenix

用户点击流 → Flink(实时统计) → HBase(存储) → Phoenix(SQL查询) → 运营平台 场景2:物联网数据平台 bash

技术组合:Flink + InfluxDB + HBase

传感器数据 → Flink(流处理) → InfluxDB(时序数据) + HBase(设备信息) → 监控告警 场景3:电商数据中台 bash

技术组合:Hive + HBase + Flink

业务数据 → HDFS → Hive(ETL) → HBase(数据服务) 实时订单 → Flink(实时处理) → 风控系统 场景4:微服务架构 bash

技术组合:Sentinel + Seata + ZooKeeper

微服务集群 → Sentinel(流量防护) + Seata(分布式事务) + ZooKeeper(服务发现)

⚡ 性能特点对比

组件 数据模型 延迟 吞吐量 一致性 HBase 列式 毫秒级 高 强一致 Hive 表格式 分钟级 中 最终一致 Flink 流式 毫秒级 很高 精确一次 InfluxDB 时序 毫秒级 很高 可配置

🔧 运维考虑 资源需求 Hadoop/HBase:需要大量磁盘和内存

Flink:需要大量CPU和内存

ZooKeeper:需要低延迟网络

InfluxDB:需要SSD磁盘

监控重点 HDFS磁盘使用率

HBase Region分布

Flink Checkpoint状态

ZooKeeper连接数

💡 总结 这是一个完整的实时大数据平台技术栈:

底层:Hadoop + ZooKeeper 提供基础设施

存储层:HBase + Hive 覆盖实时和离线存储

计算层:Flink 负责实时处理

接口层:Phoenix 提供SQL便利性

专项存储:InfluxDB 处理时序数据

服务治理:Sentinel + Seata 保障微服务稳定性

这个组合能够处理从批处理到流处理、从数据存储到实时分析的完整大数据需求,是构建现代数据平台的成熟方案!

本文作者:小白

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!