大数据领域概念区分

大数据领域涉及众多多多组件和概念,它们各自有明确的定位和用途。以下按功能分类详细说明核心关键词概念:

一、基础平台与分布式系统

  1. Hadoop

    • 定义:Apache 基金会的开源分布式计算框架,是大数据技术的基石。
    • 核心组件:
      • HDFS:分布式文件系统,用于存储海量数据(以块为单位,默认 128MB,多副本存储)。
      • MapReduce:分布式计算框架,将任务拆分为 Map(映射)和 Reduce(归约)阶段并行处理。
      • YARN:资源管理器,负责集群资源(CPU、内存)的分配与任务调度。
    • 特点:适合离线批处理,处理 TB/PB 级数据,对硬件要求低,但实时性差。
    • 应用场景:日志分析、数据备份、离线数据清洗。
  2. Spark

    • 定义:加州大学伯克利分校开发的分布式计算引擎,后捐给 Apache。
    • 核心特点:
      • 基于内存计算,速度比 MapReduce 快 100 倍(避免频繁磁盘 IO)。
      • 支持批处理、流处理、机器学习、图计算等多种场景。
      • 提供 Scala/Python/Java 等 API,易用性强。
    • 组件:
      • Spark Core:核心计算引擎。
      • Spark SQL:处理结构化数据(类 SQL 语法)。
      • Spark Streaming:实时流处理(微批处理模式)。
      • MLlib:机器学习库。
      • GraphX:图计算库。
    • 应用场景:实时数据分析、机器学习训练、交互式查询。
  3. Flink

    • 定义:Apache 开源的分布式流处理框架,专注于低延迟、高吞吐的实时计算。
    • 特点:
      • 基于事件驱动的真正流处理(而非 Spark Streaming 的微批),延迟可达毫秒级。
      • 支持状态管理和 Exactly-Once 语义(数据处理不丢不重)。
    • 应用场景:实时监控、实时推荐、金融风控(如欺诈检测)。

二、分布式协调与服务

  1. ZooKeeper

    • 定义:分布式协调服务,为分布式系统提供一致性、高可用的配置管理和同步机制。
    • 功能:
      • 集群节点状态监控(如 Hadoop NameNode、Kafka Broker 的主从切换)。
      • 分布式锁(避免资源竞争)、命名服务(统一服务标识)。
    • 依赖它的组件:Hadoop、Kafka、HBase 等。
  2. YARN

    • 定义:Hadoop 的资源管理器(Yet Another Resource Negotiator)。
    • 作用:统一管理集群的 CPU、内存等资源,为 MapReduce、Spark、Flink 等计算框架分配资源,实现多框架共享集群。

三、数据存储

  1. HDFS

    • 定义:Hadoop 分布式文件系统(Hadoop Distributed File System)。
    • 特点:
      • 适合存储大文件(GB/TB 级),不适合小文件(元数据开销大)。
      • 采用主从架构:NameNode(管理元数据)+ DataNode(存储实际数据)。
    • 应用:作为 Hadoop、Spark 等框架的底层存储。
  2. HBase

    • 定义:分布式列式存储数据库,基于 HDFS,模仿 Google BigTable。
    • 特点:
      • 适合存储非结构化 / 半结构化数据,支持随机读写(毫秒级响应)。
      • 按列族存储,可水平扩展,适合海量数据(百亿行、百万列)。
    • 应用场景:用户行为日志存储、实时查询(如电商商品详情)。
  3. MongoDB

    • 定义:开源文档型数据库(NoSQL)。
    • 特点:存储 JSON 格式的文档,Schema 灵活,适合迭代快的业务(如社交、内容管理)。
    • 与 HBase 区别:MongoDB 更侧重单节点性能和易用性,HBase 更适合超大规模分布式场景。

四、消息队列

  1. Kafka

    • 定义:分布式高吞吐消息队列,最初由 LinkedIn 开发,后捐给 Apache。
    • 特点:
      • 基于磁盘存储,支持高吞吐(每秒百万级消息)、持久化、多副本。
      • 按主题(Topic)分区存储,支持消息回溯和流处理。
    • 应用场景:日志收集(如 ELK 栈)、实时数据管道(如 Kafka + Flink 处理流数据)、系统解耦。
  2. RabbitMQ

    • 定义:基于 AMQP 协议的消息队列,侧重可靠性和灵活的路由策略。
    • 与 Kafka 区别:RabbitMQ 实时性高(微秒级),但吞吐低于 Kafka,适合业务消息(如订单通知)。

五、数据处理与分析

  1. MapReduce

    • 定义:Hadoop 早期的分布式计算模型。
    • 原理:将任务拆分为 Map(分散计算)和 Reduce(聚合结果)两个阶段,适合离线批处理。
    • 缺点:速度慢(中间结果写入磁盘),已逐渐被 Spark 替代。
  2. Flink Streaming

    • 定义:Flink 的流处理模块,支持实时数据处理(如实时统计、异常检测)。
    • 优势:相比 Spark Streaming(微批处理,延迟秒级),Flink 是真正的流处理(延迟毫秒级)。
  3. Hive

    • 定义:基于 Hadoop 的数据仓库工具,由 Facebook 开发。
    • 功能:将结构化数据映射为表,支持类 SQL 语法(HQL),底层转换为 MapReduce/Spark 任务执行。
    • 应用场景:离线数据分析(如用户留存率计算、报表生成),不适合实时查询。
  4. Pig

    • 定义:Apache 开源的数据流处理工具,使用类 SQL 的 Pig Latin 语言,适合非结构化数据处理(如日志清洗),底层也依赖 MapReduce。

六、搜索与日志处理

  1. Elasticsearch

    • 定义:分布式全文搜索引擎,基于 Lucene,支持近实时检索。
    • 特点:存储 JSON 文档,支持复杂查询(分词、过滤、聚合),适合日志检索、商品搜索。
    • 常与 Logstash(数据收集)、Kibana(可视化)组成 ELK 栈,用于日志分析。
  2. Logstash

    • 定义:数据收集与处理工具,可从多源(文件、数据库、消息队列)采集数据,进行清洗、转换后输出到 Elasticsearch 等目的地。

七、机器学习与深度学习

  1. Spark MLlib

    • 定义:Spark 内置的机器学习库,提供分类、回归、聚类等算法,支持分布式训练(适合海量数据)。
  2. TensorFlow/PyTorch

    • 定义:主流深度学习框架,适合训练神经网络模型(如图像识别、NLP)。
    • 与 Spark MLlib 区别:前者侧重深度学习(复杂模型),后者侧重传统机器学习(分布式场景)。

总结:核心组件关系图

plaintext

复制代码
数据采集(Logstash/Flink CDC)→ 存储(HDFS/HBase/MongoDB)→ 处理(Spark/Flink/MapReduce)→ 分析(Hive/Spark SQL)→ 展示(Kibana/Tableau)
        ↓
    消息队列(Kafka/RabbitMQ)→ 实时处理(Flink/Spark Streaming)

每个组件都有明确的分工:Hadoop 是基础存储和批处理平台,Spark/Flink 是计算引擎,Kafka 是数据管道,Hive 是数据仓库工具,ZooKeeper 负责协调 ------ 它们共同构成了大数据处理的完整生态。

相关推荐
冉冰学姐14 小时前
SSM装修服务网站5ff59(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架·装修服务网站
库库83914 小时前
Redis分布式锁、Redisson及Redis红锁知识点总结
数据库·redis·分布式
沧澜sincerely14 小时前
Redis 缓存模式与注解缓存
数据库·redis·缓存
Elastic 中国社区官方博客14 小时前
Elasticsearch 推理 API 增加了开放的可定制服务
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
nzxzn15 小时前
MYSQL第二次作业
数据库·mysql
核桃杏仁粉15 小时前
excel拼接数据库
数据库·oracle·excel
TiAmo zhang15 小时前
SQL Server 2019实验 │ 设计数据库的完整性
数据库·sqlserver
冻咸鱼16 小时前
MySQL的CRUD
数据库·mysql·oracle
Funny Valentine-js16 小时前
团队作业——概要设计和数据库设计
数据库
CodeJourney.16 小时前
SQL提数与数据分析指南
数据库·信息可视化·数据分析