当前位置: 首页 > news >正文

Hadoop学习教程,从入门到精通, 初识Hadoop — 知识点详解(1)

初识Hadoop — 知识点详解


一、大数据概述

1.1 什么是大数据

定义:
大数据(Big Data)是指传统数据处理软件工具无法在合理时间内完成采集、存储、管理和分析的大规模、复杂数据集合。其核心不仅在于数据量之"大",更在于从海量数据中提取有价值信息的能力。

权威定义(3V → 5V):

维度英文含义
Volume(大量)数据规模巨大从TB级别跃升至PB、EB甚至ZB级别
Velocity(高速)数据生成和处理速度快数据以实时或近实时的方式持续产生,要求快速处理
Variety(多样)数据类型繁多结构化、半结构化、非结构化数据并存
Value(价值)价值密度低但商业价值高海量数据中有价值的信息占比低,需深度挖掘
Veracity(真实性)数据质量参差不齐数据的准确性、可信度直接影响分析结果

数据量级换算:

1 KB (Kilobyte) = 1024 Byte 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte) = 1024 MB 1 TB (Terabyte) = 1024 GB 1 PB (Petabyte) = 1024 TB 1 EB (Exabyte) = 1024 PB 1 ZB (Zettabyte) = 1024 EB

1.2 大数据的数据类型

(1) 结构化数据(Structured Data)

  • 定义:具有固定格式和长度,可以用二维表结构来表达的数据。
  • 存储方式:关系型数据库(如 MySQL、Oracle、PostgreSQL)。
  • 示例:银行交易记录、学生考试成绩表、员工薪资表、传感器数值记录。
  • 特点:易于存储、查询和分析,处理技术成熟。

(2) 半结构化数据(Semi-structured Data)

  • 定义:不符合关系型数据库的严格表结构,但包含标签或标记来区分语义层次的数据。
  • 存储方式:NoSQL数据库、文件系统。
  • 示例:JSON文件、XML文件、HTML文档、日志文件(Log)、电子邮件。
  • 特点:具有一定的结构性,但灵活性较高,schema可变。

(3) 非结构化数据(Unstructured Data)

  • 定义:没有固定格式、无法用传统数据库表描述的数据。
  • 存储方式:分布式文件系统(如HDFS)、对象存储(如S3)、NoSQL数据库。
  • 示例:文本(社交媒体帖子)、图片、音频、视频、PPT、PDF文档。
  • 特点:占大数据总量的80%~90%以上,处理难度最大,蕴含价值潜力巨大。

数据类型占比(行业普遍认知):

非结构化数据:约 80%-90% 半结构化数据:约 5%-10% 结构化数据: 约 5%-10%

1.3 大数据的特征(4V详解)

(1) Volume — 大量性

  • 数据体量巨大,远超传统数据库处理能力。
  • 全球每天产生约2.5 EB数据(截至2024年)。
  • 典型场景:社交平台每天数十亿条消息、电商平台每天数亿笔交易。

(2) Velocity — 高速性

  • 数据以极高速率生成,要求实时或近实时处理。
  • 批处理(Batch Processing):对历史数据定期处理,如每日/每周报表。
  • 流处理(Stream Processing):对实时数据流即时处理,如实时风控、实时推荐。
  • 交互式查询(Interactive Query):秒级到分钟级的即席查询。

(3) Variety — 多样性

  • 数据来源广泛:传感器、社交网络、日志、交易系统、移动设备等。
  • 数据格式多样:文本、图片、音频、视频、地理位置、点击流等。
  • 需要多种技术手段进行整合处理。

(4) Value — 价值性

  • 价值密度低:在海量数据中,有用信息占比极低。
  • 但通过深度挖掘分析,可获得巨大的商业价值和社会价值。
  • 例:监控视频中,真正有用的画面可能仅占几秒。

补充特征:

  • Veracity(真实性/准确性):数据质量存在噪声、缺失、不一致等问题。
  • Variability(可变性):数据含义和格式可能随时间变化。

1.4 研究大数据的意义

(1) 商业价值

  • 精准营销:通过用户行为数据实现个性化推荐(如淘宝千人千面)。
  • 风险控制:金融行业利用大数据建立信用模型,识别欺诈交易。
  • 运营优化:通过数据分析优化供应链、降低库存成本。

(2) 科学研究

  • 基因组学、天文学、气象学等领域依赖大数据分析推动科研突破。
  • 加速药物研发、疾病预测模型构建。

(3) 社会治理

  • 智慧城市:交通流量优化、公共安全监控、应急响应。
  • 疫情防控:流行病学追踪、密接排查、资源调配。

(4) 决策支持

  • 从"经验驱动"转向"数据驱动"决策。
  • 企业战略制定、市场趋势预判、竞争分析。

(5) 推动技术进步

  • 大数据催生了Hadoop、Spark、Flink等分布式计算框架。
  • 推动了人工智能和机器学习的快速发展(数据是AI的燃料)。

1.5 大数据的应用场景

1.5.1 医疗行业的应用
应用方向具体内容
疾病预测与预防通过分析历史病历数据和环境数据,预测流感等疾病的爆发趋势
精准医疗基于基因组数据和临床数据,为患者制定个性化治疗方案
医学影像分析利用深度学习+大数据辅助CT、MRI影像的自动识别和诊断
药物研发通过大规模临床试验数据分析,加速新药发现和上市周期
健康管理可穿戴设备采集的实时健康数据(心率、血压、睡眠等)用于慢病管理
医院运营优化患者流量预测、病床调度、医疗资源配置优化

典型应用案例:

  • IBM Watson Health 利用大数据辅助癌症诊断。
  • 基于大数据的电子健康档案(EHR)系统实现跨机构数据共享。
1.5.2 金融行业的应用
应用方向具体内容
风险控制实时监控交易行为,识别异常模式,防范信用卡欺诈和洗钱
信用评估基于多维数据(消费、社交、出行等)构建信用评分模型
量化交易利用历史行情和实时市场数据进行算法交易策略建模
精准营销分析客户画像,推荐合适的理财产品和保险产品
反洗钱(AML)通过大数据关联分析识别可疑交易网络
智能客服NLP技术+知识库实现智能问答和投诉处理

典型应用案例:

  • 蚂蚁金服的芝麻信用体系。
  • 银行利用大数据实现实时交易反欺诈监控。
1.5.3 零售行业的应用
应用方向具体内容
用户画像基于浏览、购买、评价等行为数据构建360°用户画像
个性化推荐协同过滤、内容推荐等算法驱动的商品推荐系统
库存管理基于销售趋势预测优化库存水平,减少滞销和缺货
定价策略动态定价:根据供需关系、竞品价格实时调整商品价格
供应链优化物流路径优化、仓储布局优化、配送时效提升
客流分析线下门店利用Wi-Fi探针、视频分析等技术分析客流特征

典型应用案例:

  • 亚马逊的"购买此商品的客户还买了……"推荐系统。
  • 沃尔玛通过大数据分析发现"飓风来临前啤酒和蛋挞销量大增"的经典关联规则。

二、Hadoop概述

2.1 Hadoop的前世今生

2.1.1 起源
  • Hadoop起源于Apache Nutch项目(一个开源的网络搜索引擎),由Doug CuttingMike Cafarella于2002年发起。
  • 2003年和2004年,Google先后发表了两篇奠基性论文:
    • GFS(Google File System,2003)— 分布式文件系统
    • MapReduce(2004)— 分布式计算框架
  • Doug Cutting受到这两篇论文启发,分别实现了对应的开源版本:
    • Nutch Distributed File System(NDFS)→ 后演变为HDFS
    • MapReduce的开源实现
2.1.2 命名由来

Hadoop这个名字来源于Doug Cutting儿子的一个黄色玩具大象(Hadoop的Logo至今仍是一只黄色小象)。Doug Cutting曾说:“这是个简短、容易拼写和记忆的名字,而且没有什么其他用途。”

2.1.3 发展历程
时间事件
2002年Doug Cutting和Mike Cafarella启动Apache Nutch项目
2003年Google发表GFS论文
2004年Google发表MapReduce论文;NDFS开始开发
2006年Nutch中的NDFS和MapReduce独立出来,正式命名为Hadoop;Doug Cutting加入Yahoo!
2007年Yahoo!在1000个节点的集群上运行Hadoop
2008年Hadoop成为Apache顶级项目;打破世界排序纪录(1TB数据排序209秒)
2009年Hadoop每分钟排序记录达到1TB/分钟;Cloudera成立(最早商业化Hadoop的公司)
2011年Hadoop 1.0.0正式发布;Hortonworks成立
2013年Hadoop 2.2.0发布,引入YARN资源管理框架
2017年Hadoop 3.0.0发布,引入Erasure Coding、YARN Timeline Service v2等
2019年Cloudera与Hortonworks合并
2020年Hadoop 3.3.0发布
2.1.4 两代架构演进
Hadoop 1.x Hadoop 2.x / 3.x ┌─────────────┐ ┌─────────────┐ │ MapReduce │ ← 计算+资源管理 │ YARN │ ← 仅资源管理 │ (JobTracker)│ │(ResourceManager)│ ├─────────────┤ ├─────────────┤ │ HDFS │ │ MapReduce / │ ← 计算框架(可插拔) │ (NameNode) │ │ Spark / Tez等 │ └─────────────┘ ├─────────────┤ │ HDFS │ │ (NameNode) │ └─────────────┘

2.2 Hadoop的优点

(1) 高可靠性(Reliability)

  • HDFS通过数据块多副本冗余存储(默认3副本)保证数据安全。
  • 即使某个DataNode节点故障,数据仍可从其他副本读取。
  • 框架自动处理节点失败,进行任务重新调度。

(2) 高扩展性(Scalability)

  • 水平扩展(Scale-out):可通过简单增加节点来扩展集群容量和计算能力。
  • 支持从几台到数千台服务器的集群规模。
  • Facebook的Hadoop集群曾超过4000个节点。

(3) 高效性(Efficiency)

  • MapReduce任务可以并行执行,充分利用集群的分布式计算能力。
  • 数据本地化(Data Locality)策略:将计算任务调度到数据所在的节点执行,减少网络传输开销。

(4) 高容错性(Fault Tolerance)

  • 任务失败时自动重新调度到其他节点执行。
  • 数据节点故障时自动从其他副本恢复数据。
  • NameNode通过日志(EditLog)和检查点(FsImage)机制保证元数据安全。

(5) 低成本(Cost-effective)

  • 基于**廉价的商用硬件(Commodity Hardware)**构建集群,无需昂贵的专用服务器。
  • 开源免费软件,降低了软件许可成本。
  • 与传统的关系型数据库扩展方案(纵向扩展)相比,成本优势明显。

(6) 生态成熟(Ecosystem)

  • 拥有庞大的生态系统:Hive、HBase、Spark、Sqoop、Flume、Kafka、Oozie等。
  • 社区活跃,文档丰富,人才储备充足。
  • 支持多种编程语言和计算框架。

(7) 支持多种数据格式和计算模型

  • 不要求数据预先定义schema(Schema-on-Read)。
  • 可处理结构化、半结构化和非结构化数据。
  • YARN支持多种计算框架(MapReduce、Spark、Tez、Flink等)。

2.3 Hadoop的缺点

(1) 不适合低延迟数据访问

  • HDFS设计初衷是高吞吐量批处理,而非低延迟的实时访问。
  • HDFS的随机读取性能较差,不适合在线事务处理(OLTP)场景。
  • MapReduce任务的启动开销大,延迟高(秒到分钟级)。
  • 替代方案:HBase(基于HDFS,提供随机实时读写)、Spark(内存计算,速度快于MapReduce)。

(2) 不适合处理大量小文件

  • HDFS的NameNode将所有文件的元数据存储在内存中。
  • 每个文件、目录和数据块约占150字节的元数据。
  • 大量小文件会迅速耗尽NameNode内存,且会导致过多的Map任务,降低处理效率。
  • 解决方案:HAR(Hadoop Archive)、SequenceFile、CombineFileInputFormat。

(3) 不支持多用户写入和随机修改

  • HDFS采用**“一次写入,多次读取”(Write-Once-Read-Many)**的数据模型。
  • 文件写入后不支持修改,只能追加(append)。
  • 不支持多用户并发写入同一文件。

(4) MapReduce编程模型的局限性

  • MapReduce编程相对复杂,需要手写Map和Reduce函数。
  • 多轮迭代计算(如机器学习算法)需要多次磁盘I/O,效率低下。
  • 不适合DAG(有向无环图)类型的复杂计算。
  • 替代方案:Spark(基于内存计算,支持DAG)、Tez(DAG优化引擎)。

(5) NameNode单点故障问题(Hadoop 1.x)

  • Hadoop 1.x中,NameNode是单点(SPOF),一旦故障整个集群不可用。
  • Hadoop 2.x引入HDFS HA(High Availability):Active/Standby NameNode + JournalNode解决此问题。
  • Hadoop 3.x进一步增强了HA能力。

(6) 资源管理效率问题(Hadoop 1.x)

  • Hadoop 1.x中MapReduce既负责计算又负责资源管理,耦合度高。
  • Hadoop 2.x引入YARN将资源管理独立出来,支持多种计算框架共享集群资源。

(7) 数据存储开销

  • 默认3副本策略导致存储空间膨胀为原始数据的3倍。
  • Hadoop 3.0引入**Erasure Coding(纠删码)**技术,可在保证容错的同时将存储开销降低约50%。

2.4 Hadoop的生态体系

Hadoop生态体系是一个庞大的技术栈,各组件协同工作,覆盖大数据处理的完整生命周期。

核心组件
组件功能说明
HDFS分布式文件存储Hadoop的存储基础,提供高吞吐量的数据读写
MapReduce分布式计算框架基于Map和Reduce的批处理编程模型
YARN资源管理和调度集群资源管理,支持多计算框架共存
数据存储与管理
组件功能说明
HBase分布式NoSQL数据库基于HDFS,支持海量数据的实时随机读写
Kudu列式存储引擎介于HDFS和HBase之间,支持快速分析和随机访问
HCatalog元数据管理提供统一的表和存储管理层
数据查询与分析
组件功能说明
Hive数据仓库工具将SQL转化为MapReduce/Spark/Tez任务
Pig数据流语言Pig Latin脚本简化MapReduce编程
ImpalaMPP查询引擎基于HDFS的低延迟SQL查询
Presto/Trino分布式SQL查询支持跨数据源的交互式查询
数据采集与传输
组件功能说明
Flume日志采集高可用、高可靠的分布式日志收集系统
Sqoop数据导入导出在Hadoop与关系型数据库之间传输数据
Kafka消息队列高吞吐的分布式消息系统,用于实时数据管道
NiFi数据流管理可视化的数据流编排和管理工具
数据处理与计算
组件功能说明
Spark内存计算框架比MapReduce快10~100倍,支持批处理、流处理、机器学习
TezDAG计算框架优化Hive查询性能,将多轮MapReduce合并为DAG
Flink流批一体计算真正的流处理框架,支持事件时间和精确一次语义
数据挖掘与机器学习
组件功能说明
Mahout机器学习库基于Hadoop/Spark的分布式机器学习算法
Spark MLlib机器学习库Spark生态的机器学习组件
任务调度与管理
组件功能说明
Oozie工作流调度定义和调度Hadoop作业的工作流
Azkaban任务调度LinkedIn开源的批处理工作流调度器
Airflow工作流编排Airbnb开源的DAG工作流编排平台
集群管理与监控
组件功能说明
Ambari集群管理Apache开源的Hadoop集群安装、管理和监控工具
Zookeeper分布式协调提供配置管理、命名服务、分布式锁、集群管理

生态系统全景图(层次结构):

┌─────────────────────────────────────────────────┐ │ 数据展示与应用层 │ │ (Hue, Zeppelin, Jupyter, BI工具) │ ├─────────────────────────────────────────────────┤ │ 数据挖掘与机器学习 │ │ (Mahout, Spark MLlib, TensorFlow on YARN) │ ├─────────────────────────────────────────────────┤ │ 数据查询与分析 │ │ (Hive, Impala, Presto, Pig) │ ├─────────────────────────────────────────────────┤ │ 数据计算引擎 │ │ (MapReduce, Spark, Tez, Flink) │ ├─────────────────────────────────────────────────┤ │ 资源管理层 │ │ YARN │ ├─────────────────────────────────────────────────┤ │ 数据采集与传输 │ │ (Flume, Sqoop, Kafka, NiFi) │ ├─────────────────────────────────────────────────┤ │ 数据存储层 │ │ HDFS / HBase / Kudu │ ├─────────────────────────────────────────────────┤ │ 协调与管理 │ │ (Zookeeper, Ambari, Oozie) │ └─────────────────────────────────────────────────┘

2.5 Hadoop架构变迁

2.5.1 Hadoop 1.x 架构
Hadoop 1.x ┌───────────────────────────────┐ │ MapReduce v1 │ │ ┌──────────┬──────────────┐ │ │ │JobTracker│ TaskTracker │ │ ← JobTracker: 既管资源又管任务调度 │ │(Master) │ (Slave×N) │ │ TaskTracker: 执行Map/Reduce任务 │ └──────────┴──────────────┘ │ ├───────────────────────────────┤ │ HDFS v1 │ │ ┌──────────┬──────────────┐ │ │ │ NameNode │ DataNode×N │ │ ← 单NameNode,存在单点故障 │ │ (Master) │ (Slave) │ │ │ └──────────┴──────────────┘ │ └───────────────────────────────┘

特点:

  • JobTracker负责资源管理和作业调度,负担过重。
  • 只支持MapReduce一种计算模型。
  • NameNode单点故障,可靠性不足。
  • 最大支持约4000个节点。
2.5.2 Hadoop 2.x 架构(重大升级)
Hadoop 2.x ┌───────────────────────────────────────────┐ │ YARN │ │ ┌─────────────────┬──────────────────┐ │ │ │ResourceManager │ NodeManager×N │ │ ← 资源管理与计算解耦 │ │ (Active/ │ (每个节点一个) │ │ │ │ Standby HA) │ │ │ │ └─────────────────┴──────────────────┘ │ │ ↕ 可运行多种计算框架 │ │ MapReduce / Spark / Tez / Flink / ... │ ├───────────────────────────────────────────┤ │ HDFS v2 │ │ ┌─────────────────┬──────────────────┐ │ │ │NameNode │ DataNode×N │ │ ← HA: Active/Standby NameNode │ │(Active/Standby) │ │ │ Federation: 支持多命名空间 │ │+ JournalNode │ │ │ │ └─────────────────┴──────────────────┘ │ └───────────────────────────────────────────┘

关键改进:

  • YARN(Yet Another Resource Negotiator):将资源管理从MapReduce中剥离,成为独立的资源管理层。
  • HDFS HA:引入Active/Standby NameNode + JournalNode,消除单点故障。
  • HDFS Federation:支持多个独立的NameNode管理不同的命名空间,扩展性增强。
  • 支持多种计算框架:MapReduce不再是唯一选择,Spark、Tez等可共享集群资源。
2.5.3 Hadoop 3.x 架构(最新版本)

关键新特性:

特性说明
Erasure Coding(纠删码)替代3副本机制,将存储开销从200%降至约50%,同时保持同等容错能力
YARN Timeline Service v2提升YARN应用历史数据的可扩展性和读写性能
多NameNode支持HDFS Federation支持超过2个Standby NameNode,进一步提升可用性
Intra-DataNode Balancer支持DataNode内部磁盘间的数据均衡
支持Java 8+不再支持Java 7,充分利用新版本语言特性
Docker容器支持YARN支持在Docker容器中运行任务
HDFS Router-based Federation基于Router的联邦方案,替代客户端挂载表方案
Opportunistic Containers抢占式容器调度,提升集群资源利用率
2.5.4 架构变迁总结
Hadoop 1.x ──→ Hadoop 2.x ──→ Hadoop 3.x │ 关键变化: │ 1.x → 2.x: │ · MapReduce拆分 → YARN + MapReduce │ · 单NameNode → HA NameNode │ · 单计算框架 → 多计算框架 │ │ 2.x → 3.x: │ · 3副本 → Erasure Coding │ · 2个NameNode → 多NameNode │ · 更强的容器化支持 │ · 性能优化与资源利用提升 │

三、本章小结

核心知识点回顾

知识模块核心要点
大数据定义5V特征:Volume、Velocity、Variety、Value、Veracity
数据类型结构化、半结构化、非结构化三类,非结构化占比最大
研究意义商业价值、科学研究、社会治理、决策支持、技术推动
应用场景医疗(精准医疗)、金融(风控)、零售(推荐系统)
Hadoop起源Google的GFS+MapReduce论文 → Nutch → Hadoop(Doug Cutting创建)
Hadoop优点高可靠、高扩展、高效、高容错、低成本、生态成熟
Hadoop缺点高延迟、不适合小文件、不支持随机修改、NameNode单点(1.x)
生态体系HDFS+YARN+MapReduce为核心,Hive/HBase/Spark/Kafka等为外围组件
架构变迁1.x(单NameNode+JobTracker) → 2.x(HA+YARN) → 3.x(Erasure Coding+多NN)

关键概念对比

对比项Hadoop 1.xHadoop 2.xHadoop 3.x
NameNode单点HA(Active/Standby)多Standby
资源管理JobTrackerYARNYARN增强
计算框架仅MapReduce多框架(MR/Spark/Tez)多框架+容器化
数据冗余3副本3副本3副本+Erasure Coding
存储效率3倍存储开销3倍存储开销约1.5倍存储开销

本章学习目标总结:理解大数据的基本概念、特征和应用价值;掌握Hadoop的诞生背景、核心优缺点、生态系统全景以及三代架构的关键演进,为后续深入学习HDFS、MapReduce和YARN打下坚实基础。

http://www.jsqmd.com/news/973244/

相关文章:

  • C# WPF超市收银桌面程序源码包,含UI界面、数据访问层与完整运行截图
  • 从自动驾驶到电机控制:聊聊卡尔曼滤波这位‘跨界大神’的降维应用
  • 央视连发三条专题!济南AI模型工厂:75道工序流水线量产,一年“造“出1000+模型
  • 2026年众智商学院中级经济师上班族晚间班期费用资料怎么核对?官网400冯老师 - 众智商学院官方
  • 华硕笔记本性能管理神器:G-Helper轻量级控制工具完全指南
  • 2026年众智商学院PMP官网咨询入口:怎么报名和怎么选班期领取资料 - 众智商学院官方
  • MATLAB实现GNSS+IMU组合导航仿真:EKF融合算法全流程可运行代码包
  • JavaScript数组遍历性能与兼容性深度解析
  • 从GPS到北斗:手把手教你用Python解析NMEA-0183数据(附完整代码)
  • 手机存储速度翻倍的秘密:一文读懂UFS 2.2里的M-PHY物理层(附避坑指南)
  • 3步解决图像模糊难题:用vectorizer实现PNG/JPG到SVG的无损转换
  • 手把手教你配置TMS320F28335的SPI模块(含FIFO模式与自测代码)
  • AI Agent 运行时重构:会话即日志与无状态执行引擎
  • Open3D GUI踩坑实录:从‘Hello Sphere’到流畅3D界面的五个关键配置
  • 2026出圈!5款AI论文写作软件亲测,摆脱无效加班,初稿质量效率翻倍
  • 从0到1构建生产级RAG系统:架构、实战与避坑指南
  • Windows服务器可用的ASP电视直播站源码,含播放页与后台管理全套文件
  • 【MySQL | 第七篇】 索引使用规则
  • 新手也能看懂的BUUCTF SQL注入实战:从登录框到后台的304跳转注入点挖掘
  • 2026年湖州库存管理岗位SCMP四模块报名怎么问?众智商学院冯老师班期资料 - 众智商学院职业教育
  • 别再死磕官方案例了!用FNL数据从零搭建WRF(附避坑指南与完整namelist配置)
  • 别再手动打包了!新版Dubbo-Admin 0.3.0一键部署指南(Win/Linux通用,含Maven避坑)
  • 别再死磕反正切了!用锁相环PLL从SMO估算的扩展反电动势里提取PMSM转子角度(附Simulink模型)
  • Python一行代码生成杨辉三角?聊聊背后的几种实现与性能对比
  • Matlab图像分类教学包:20+生活场景图+全流程可运行代码(含视频帧处理)
  • 机器学习七大落地场景:从金融风控到工业预测的实战指南
  • 设计物联网的接口
  • 农产品全链条溯源系统:SpringBoot微服务+Fabric区块链实现从田间到餐桌的可信追踪
  • Jupyter Lab 3.x 用户注意:升级后IProgress报错的完整修复指南(含ipywidgets兼容性详解)
  • 【第四十三周】论文阅读《Planning with the Views via Scene Self-Exploration》