@Hadoop 介绍部署使用详细指南
文章目录
- **Hadoop 介绍、部署与使用指南**
-
- 1. Hadoop 简介与核心组件
-
- 1.1 什么是 Hadoop?
- 1.2 核心组件
- 1.3 生态系统
- 2. 部署规划 (Prerequisites)
-
- 2.1 环境要求
- 2.2 节点规划 (示例)
- 2.3 前置配置 (所有节点)
- 3. Hadoop 集群部署 (以 Hadoop 3.3.4 为例)
-
- 3.1 安装与配置
- 3.2 启动与验证集群
- 4. 基本使用与测试
-
- 4.1 HDFS 操作
- 4.2 运行 MapReduce 示例 (WordCount)
- 5. 常见问题 (FAQ & Troubleshooting)
- 6. 官方参考文献
- 7. 附录:关键命令总结
Hadoop 介绍、部署与使用指南
1. Hadoop 简介与核心组件
1.1 什么是 Hadoop?
Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。它的核心设计目标是:高可靠性、高扩展性、高效性 和 高容错性。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。
1.2 核心组件
-
HDFS (Hadoop Distributed File System):
- 职责: 分布式数据存储。
- 主要角色:
- NameNode (NN): 主节点,管理文件系统的命名空间(元数据)和客户端对文件的访问。
- DataNode (DN): 从节点,存储实际的数据块。
- Secondary NameNode (2NN): 辅助 NameNode,定期合并镜像文件和编辑日志,不是热备节点。
-
YARN (Yet Another Resource Negotiator):
- 职责: 集群资源管理与作业调度。
- 主要角色:
- ResourceManager (RM): 主节点,管理整个集群的资源(CPU, 内存)并调度应用程序。
- NodeManager (NM): 从节点,管理单个节点上的资源和任务。
-
MapReduce:
- 职责: 分布式并行计算框架。它将计算过程分为两个阶段:Map(映射)和 Reduce(归约)。
1.3 生态系统
Hadoop 生态圈还包括其他重要工具,如:
- Hive: 数据仓库工具,提供 SQL 查询功能。
- HBase: 分布式、面向列的 NoSQL 数据库。
- Spark: 基于内存的快速通用计算引擎。
- ZooKeeper: 分布式协调服务。
- Sqoop: 在 Hadoop 和结构化数据库(如 MySQL)间传输数据。
- Flume: 日志采集、聚合和传输系统。
2. 部署规划 (Prerequisites)
2.1 环境要求
- 操作系统: Linux (推荐 CentOS 7/8, Ubuntu 18.04/20.04)
- Java: Hadoop 3.x 需要 Java 8 或 Java 11 (必须安装 JDK,不仅仅是 JRE)。推荐 OpenJDK。
- SSH: 必须配置免密登录 (Password-less SSH),主节点到所有从节点。
- 硬件: 至少 3 个节点(1 主 2 从),用于模拟生产环境。内存建议 4GB+。
2.2 节点规划 (示例)
假设我们有 3 台虚拟机:
主机名 | IP 地址 | 角色分配 |
---|---|---|
hadoop-master | 192.168.1.10 | NameNode, ResourceManager, SecondaryNameNode |
hadoop-slave1 | 192.168.1.11 | DataNode, NodeManager |
hadoop-slave2 | 192.168.1.12 | DataNode, NodeManager |
2.3 前置配置 (所有节点)
-
设置主机名和 hosts 解析
# 在主节点上执行 hostnamectl set-hostname hadoop-master# 在从节点1上执行 hostnamectl set-hostname hadoop-slave1# 在从节点2上执行 hostnamectl set-hostname hadoop-slave2# 在所有节点的 /etc/hosts 文件中添加 192.168.1.10 hadoop-master 192.168.1.11 hadoop-slave1 192.168.1.12 hadoop-slave2
-
安装 Java
# 以 CentOS 为例 yum install -y java-1.8.0-openjdk-devel# 验证安装 java -version javac -version
-
配置 SSH 免密登录 (在 hadoop-master 上操作)
# 生成密钥对 (一直回车即可) ssh-keygen -t rsa# 将公钥拷贝到所有节点,包括自己 ssh-copy-id hadoop-master ssh-copy-id hadoop-slave1 ssh-copy-id hadoop-slave2# 测试免密登录 ssh hadoop-slave1 exit
3. Hadoop 集群部署 (以 Hadoop 3.3.4 为例)
3.1 安装与配置
-
下载并解压 Hadoop (在所有节点操作)
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz tar -xzf hadoop-3.3.4.tar.gz -C /opt/ mv /opt/hadoop-3.3.4 /opt/hadoop
-
配置环境变量 (在所有节点操作)
编辑/etc/profile
或~/.bashrc
,添加: