Hadoop 简介及其hdfs常用命令
Hadoop 简介
1. 什么是 Hadoop?
Hadoop 是一个 分布式存储与计算框架,用于大规模数据处理。最初由 Apache 基金会开发,能够处理 PB 级别 的数据,具有 高容错性、可扩展性和高吞吐量 等特点。
2. Hadoop 的核心组件
Hadoop 主要由以下几个核心组件组成:
2.1 HDFS(Hadoop Distributed File System)——分布式存储
HDFS 负责将大文件拆分存储到多个节点上,并进行数据冗余,提高容错能力。
特点:
- 块存储(默认 128MB/256MB)
- 主从架构(NameNode 负责元数据管理,DataNode 负责数据存储)
- 多副本机制(默认 3 份,保证数据安全)
2.2 YARN(Yet Another Resource Negotiator)——资源管理
YARN 负责管理 Hadoop 集群的计算资源,调度作业执行。
特点:
- 任务调度与资源管理分离
- 任务并行处理,提高资源利用率
- 任务失败自动恢复
2.3 MapReduce——分布式计算框架
MapReduce 是 Hadoop 的计算引擎,采用 “Map + Reduce” 计算模型:
- Map(映射):将数据切分成小任务并并行处理
- Reduce(归约):汇总 Map 结果,得到最终计算结果
2.4 Hadoop Common
Hadoop 的通用工具库,提供基础 API 以支持 HDFS、YARN 和 MapReduce 交互。
3. Hadoop 的优势
- 高可扩展性:可以横向扩展至成千上万个节点
- 高容错性:数据自动复制,节点故障时数据仍可恢复
- 高吞吐量:适用于大规模批处理任务
- 低成本:可运行在普通商用服务器上
- 开源生态:丰富的组件,如 Hive(SQL 查询)、HBase(NoSQL 数据库)、Spark(内存计算)等
4. Hadoop 的生态系统
Hadoop 生态包含多个大数据处理工具:
组件 | 作用 |
---|---|
HDFS | 分布式存储 |
YARN | 资源管理 |
MapReduce | 分布式计算 |
Hive | SQL 查询引擎(类似数据库) |
HBase | 分布式 NoSQL 数据库 |
Spark | 内存计算框架(比 MapReduce 快) |
Flink | 流计算框架 |
Sqoop | 结构化数据导入/导出 |
Kafka | 分布式消息队列 |
ZooKeeper | 分布式协调工具 |
5. Hadoop 适用场景
- 离线大数据分析(如日志分析、用户行为分析)
- 数据存储与备份(替代传统数据库)
- 机器学习 & AI(结合 Spark、Flink 进行训练)
- 搜索引擎索引(如 Elasticsearch 后端存储)
- 大规模 ETL 处理(数据清洗、转换)
6. Hadoop vs 其他大数据框架
特性 | Hadoop | Spark | Flink |
---|---|---|---|
计算模式 | 批处理(MapReduce) | 内存计算 | 实时流处理 |
速度 | 慢 | 快(内存计算) | 更快(低延迟) |
适用场景 | 日志分析、数据仓库 | 机器学习、数据分析 | 实时数据流 |
生态 | 丰富 | 与 Hadoop 兼容 | 适用于流式数据 |
7. Hadoop 文件系统基本命令
Hadoop 提供了一系列 HDFS 命令来管理文件和目录。
7.1 文件与目录操作
# 查看 HDFS 目录结构
hdfs dfs -ls /path
# 创建目录
hdfs dfs -mkdir /path/to/dir
# 上传文件到 HDFS
hdfs dfs -put localfile /hdfs/path
# 从 HDFS 下载文件
hdfs dfs -get /hdfs/path localfile
# 删除 HDFS 文件或目录
hdfs dfs -rm -r /path/to/delete