1. 首页 > Hadoop教程 > 正文

大数据教程FG001-Hadoop生态架构与官方核心组件解析

本文档风哥主要介绍Hadoop生态架构与官方核心组件,包括Hadoop生态系统概述、Hadoop核心组件架构、Hadoop核心特性与优势、Hadoop生产环境硬件要求、Hadoop生产环境操作系统配置、Hadoop生产环境网络规划、Hadoop集群规划案例、Hadoop组件版本选型、Hadoop学习前景与路径等内容,风哥教程参考Hadoop官方文档Getting Started、Core Components等内容,适合大数据开发人员和运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 Hadoop生态系统概述

Hadoop是Apache软件基金会开发的开源分布式计算平台,提供了可靠的、可扩展的、分布式计算框架。Hadoop生态系统由多个核心组件组成,包括HDFS、YARN、MapReduce等,以及丰富的生态工具如Hive、Spark、HBase、Kafka等。更多视频教程www.fgedu.net.cn

Hadoop生态系统核心组件:

  • HDFS:分布式文件系统,提供高吞吐量的数据访问
  • YARN:资源管理和作业调度框架
  • MapReduce:分布式计算框架
  • Hive:数据仓库工具,提供SQL查询接口
  • Spark:快速通用的计算引擎
  • HBase:分布式列式存储数据库
  • Kafka:分布式消息队列
  • ZooKeeper:分布式协调服务

1.2 Hadoop核心组件架构

Hadoop核心组件架构采用Master/Slave架构设计,主要包括以下核心组件:

组件 Master节点 Slave节点 功能说明
HDFS NameNode DataNode 分布式文件存储
YARN ResourceManager NodeManager 资源管理与调度
MapReduce JobHistoryServer Task 分布式计算

1.3 Hadoop核心特性与优势

Hadoop核心特性与优势:

  • 高可靠性:数据多副本存储,自动故障转移
  • 高扩展性:支持横向扩展,可扩展至数千节点
  • 高效性:分布式并行计算,提高处理效率
  • 高容错性:自动检测和恢复故障节点
  • 低成本:运行在廉价硬件上,降低成本
  • 开源免费:Apache开源项目,社区活跃
风哥提示:Hadoop生态系统是大数据处理的基础平台,掌握Hadoop核心组件架构对于大数据开发和运维至关重要。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 Hadoop生产环境硬件要求

Hadoop生产环境硬件要求根据集群规模和业务需求进行规划:

# Hadoop生产环境硬件要求(参考)

## NameNode硬件要求
– CPU:16核以上
– 内存:64GB-128GB(根据文件数量调整)
– 磁盘:2块1TB SAS盘(RAID1,元数据存储)
– 网络:万兆网卡

## DataNode硬件要求
– CPU:16核以上
– 内存:64GB-128GB
– 磁盘:12块以上4TB-8TB SATA盘(JBOD)
– 网络:万兆网卡

## ResourceManager硬件要求
– CPU:16核以上
– 内存:64GB-128GB
– 磁盘:2块1TB SAS盘(RAID1)
– 网络:万兆网卡

## 最小集群规模
– NameNode:2台(HA架构)
– DataNode:3台以上
– ResourceManager:2台(HA架构)
– ZooKeeper:3台

2.2 Hadoop生产环境操作系统配置

Hadoop生产环境操作系统配置要求:

# Hadoop生产环境操作系统配置

## 操作系统版本
– Oracle Linux 9.3 / RHEL 9.3 / 8.x / 7.x
– CentOS 7.x / 8.x
– 国产麒麟操作系统 Kylin v10 SP3
– 欧拉操作系统 openEuler

## 内核参数配置
# 关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# 关闭NUMA
# 在GRUB配置中添加:numa=off

# 文件描述符限制
echo “* soft nofile 65536” >> /etc/security/limits.conf
echo “* hard nofile 65536” >> /etc/security/limits.conf

# 进程数限制
echo “* soft nproc 65536” >> /etc/security/limits.conf
echo “* hard nproc 65536” >> /etc/security/limits.conf

## 禁用SELinux
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

## 禁用防火墙
systemctl stop firewalld
systemctl disable firewalld

2.3 Hadoop生产环境网络规划

Hadoop生产环境网络规划建议:

# Hadoop生产环境网络规划

## 网络拓扑
– 管理网络:用于集群管理和监控
– 数据网络:用于数据传输和计算
– 存储网络:用于存储数据访问(可选)

## 主机名规划
nn1.fgedu.net.cn # NameNode主节点
nn2.fgedu.net.cn # NameNode备节点
dn1.fgedu.net.cn # DataNode节点1
dn2.fgedu.net.cn # DataNode节点2
dn3.fgedu.net.cn # DataNode节点3
rm1.fgedu.net.cn # ResourceManager主节点
rm2.fgedu.net.cn # ResourceManager备节点
zk1.fgedu.net.cn # ZooKeeper节点1
zk2.fgedu.net.cn # ZooKeeper节点2
zk3.fgedu.net.cn # ZooKeeper节点3

## IP地址规划
192.168.1.10 nn1.fgedu.net.cn
192.168.1.11 nn2.fgedu.net.cn
192.168.1.12 dn1.fgedu.net.cn
192.168.1.13 dn2.fgedu.net.cn
192.168.1.14 dn3.fgedu.net.cn
192.168.1.15 rm1.fgedu.net.cn
192.168.1.16 rm2.fgedu.net.cn
192.168.1.17 zk1.fgedu.net.cn
192.168.1.18 zk2.fgedu.net.cn
192.168.1.19 zk3.fgedu.net.cn

## /etc/hosts配置
cat >> /etc/hosts << EOF 192.168.1.10 nn1.fgedu.net.cn nn1 192.168.1.11 nn2.fgedu.net.cn nn2 192.168.1.12 dn1.fgedu.net.cn dn1 192.168.1.13 dn2.fgedu.net.cn dn2 192.168.1.14 dn3.fgedu.net.cn dn3 192.168.1.15 rm1.fgedu.net.cn rm1 192.168.1.16 rm2.fgedu.net.cn rm2 192.168.1.17 zk1.fgedu.net.cn zk1 192.168.1.18 zk2.fgedu.net.cn zk2 192.168.1.19 zk3.fgedu.net.cn zk3 EOF

生产环境建议:Hadoop生产环境网络规划需要考虑网络带宽、网络延迟、网络隔离等因素,建议使用万兆网络,并规划独立的网络段用于数据传输。学习交流加群风哥QQ113257174

Part03-生产环境项目实施方案

3.1 Hadoop生产环境检查

3.1.1 检查操作系统版本

# 检查操作系统版本
cat /etc/redhat-release

CentOS Linux release 7.9.2009 (Core)

# 检查内核版本
uname -r

3.10.0-1160.el7.x86_64

# 检查系统架构
uname -m

x86_64

3.1.2 检查系统资源

# 检查CPU信息
lscpu

Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Gold 6133 CPU @ 2.50GHz
Stepping: 4
CPU MHz: 2500.000
BogoMIPS: 5000.00
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 1024K
L3 cache: 25344K
NUMA node0 CPU(s): 0-15

# 检查内存信息
free -h

total used free shared buff/cache available
Mem: 62G 1.2G 58G 156M 2.8G 60G
Swap: 7.9G 0B 7.9G

# 检查磁盘信息
df -h

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 2.0G 48G 4% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 12M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 1014M 150M 865M 15% /boot
/dev/sdb1 2.0T 33M 2.0T 1% /bigdata

3.2 Hadoop JDK环境安装

3.2.1 安装JDK

# 创建安装目录
mkdir -p /bigdata/app

# 解压JDK安装包
tar -zxvf jdk-8u281-linux-x64.tar.gz -C /bigdata/app/

# 配置环境变量
cat >> /etc/profile << 'EOF' export JAVA_HOME=/bigdata/app/jdk1.8.0_281 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar EOF # 使环境变量生效 source /etc/profile # 验证JDK安装 java -version java version "1.8.0_281" Java(TM) SE Runtime Environment (build 1.8.0_281-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode) # 验证JAVA_HOME echo $JAVA_HOME /bigdata/app/jdk1.8.0_281

3.3 Hadoop SSH免密登录配置

3.3.1 配置SSH免密登录

# 创建hadoop用户
useradd hadoop
echo “hadoop” | passwd –stdin hadoop

# 切换到hadoop用户
su – hadoop

# 生成SSH密钥
ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory ‘/home/hadoop/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:abc123def456ghi789jkl012mno345pqr678stu901vwx hadoop@nn1.fgedu.net.cn
The key’s randomart image is:
+—[RSA 2048]—-+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+—-[SHA256]—–+

# 复制公钥到所有节点
ssh-copy-id hadoop@nn1
ssh-copy-id hadoop@nn2
ssh-copy-id hadoop@dn1
ssh-copy-id hadoop@dn2
ssh-copy-id hadoop@dn3

# 测试SSH免密登录
ssh nn2 date

Wed Apr 8 10:30:45 CST 2026

ssh dn1 date

Wed Apr 8 10:30:47 CST 2026

风哥提示:SSH免密登录是Hadoop集群的基础配置,必须确保所有节点之间可以免密登录,否则集群启动会失败。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 Hadoop集群规划案例

以50节点Hadoop集群为例,介绍集群规划方案:

节点角色 节点数量 硬件配置 部署服务
NameNode 2 16核/128GB/2TB NameNode、ZKFC、JournalNode
ResourceManager 2 16核/128GB/2TB ResourceManager、JobHistoryServer
DataNode 45 16核/128GB/48TB DataNode、NodeManager
ZooKeeper 3 8核/32GB/1TB ZooKeeper
客户端 2 8核/32GB/1TB Hive、Spark、Sqoop等

4.2 Hadoop组件版本选型

Hadoop组件版本选型建议:

# Hadoop组件版本选型(参考)

## 核心组件版本
Hadoop:3.3.5
JDK:1.8.0_281
ZooKeeper:3.8.1

## 存储组件版本
HBase:2.5.3
Hive:3.1.3

## 计算组件版本
Spark:3.4.1
Flink:1.17.0
Presto:0.280

## 消息队列版本
Kafka:3.5.0

## 数据采集版本
Sqoop:1.4.7
Flume:1.11.0

## 调度组件版本
Oozie:5.3.0
Azkaban:3.90.0

## 监控组件版本
Prometheus:2.45.0
Grafana:10.0.0

## 安全组件版本
Kerberos:1.19
Ranger:2.4.0

4.3 Hadoop学习前景与路径

Hadoop学习前景与路径规划:

Hadoop学习路径:

  • 第一阶段:Linux基础、Java基础、Hadoop基础
  • 第二阶段:HDFS、YARN、MapReduce核心组件
  • 第三阶段:Hive、Spark、HBase生态组件
  • 第四阶段:Kafka、Flume、Sqoop数据采集
  • 第五阶段:数仓建设、实时计算、数据治理
  • 第六阶段:性能优化、故障处理、项目实战

Part05-风哥经验总结与分享

5.1 Hadoop生产环境最佳实践

Hadoop生产环境最佳实践:

  • 高可用架构:NameNode和ResourceManager必须配置HA
  • 资源隔离:使用YARN队列进行资源隔离
  • 数据安全:配置Kerberos认证和Ranger权限
  • 监控告警:建立完善的监控告警体系
  • 定期备份:定期备份元数据和关键数据
  • 容量规划:提前规划存储和计算资源

5.2 Hadoop常见问题与解决方案

Hadoop常见问题与解决方案:

  • NameNode内存不足:调整heap size,优化元数据管理
  • DataNode磁盘满:清理临时文件,扩容磁盘
  • YARN资源不足:调整队列配置,优化资源分配
  • 小文件过多:使用HAR归档,定期合并小文件
  • 数据倾斜:优化分区策略,使用Combiner
风哥提示:Hadoop生产环境运维需要丰富的经验积累,建议多进行故障演练和性能测试,提高运维能力。from bigdata视频:www.itpux.com

5.3 Hadoop生态工具推荐

Hadoop生态工具推荐:

  • 集群管理:Ambari、Cloudera Manager
  • 监控告警:Prometheus+Grafana、Ganglia
  • 日志分析:ELK Stack(Elasticsearch+Logstash+Kibana)
  • 数据治理:Atlas、Ranger
  • 数据质量:Deequ、Great Expectations
  • 调度工具:Airflow、DolphinScheduler

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息