您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Hadoop 2.x HDFS和YARN的启动方式有哪些
## 一、Hadoop 2.x架构概述
Hadoop 2.x是Apache Hadoop的重要版本升级,其核心改进在于将资源管理功能从MapReduce中分离出来,形成了独立的YARN框架。该版本主要由以下两大核心组件构成:
1. **HDFS(Hadoop Distributed File System)**
分布式文件存储系统,采用主从架构设计,包含NameNode(主节点)和DataNode(从节点)。
2. **YARN(Yet Another Resource Negotiator)**
资源管理框架,包含ResourceManager(主节点)和NodeManager(从节点)。
## 二、HDFS的启动方式
### 1. 单节点启动(本地模式)
适用于开发和测试环境,所有服务运行在单个JVM进程中。
```bash
# 格式化NameNode(首次启动前需执行)
hdfs namenode -format
# 启动所有HDFS服务
start-dfs.sh
特点:
- 不区分NameNode和DataNode
- 日志直接输出到控制台
- 配置文件通常使用core-site.xml
和hdfs-site.xml
的默认值
模拟完全分布式环境,但所有服务运行在单台机器。
# 格式化NameNode
hdfs namenode -format
# 分步启动
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
# 或使用组合命令
start-dfs.sh
关键配置文件:
<!-- hdfs-site.xml -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
生产环境标准启动方式,需配置多台物理节点。
# 在NameNode主机执行
hdfs namenode -format
start-dfs.sh
# 单独启动JournalNode(HA模式)
hadoop-daemon.sh start journalnode
高可用(HA)配置要点:
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
当NameNode检测到数据块丢失时自动进入,也可手动触发:
# 进入安全模式
hdfs dfsadmin -safemode enter
# 强制退出
hdfs dfsadmin -safemode leave
# 启动YARN服务
start-yarn.sh
# 单独启停组件
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
需配置ZooKeeper实现故障转移:
<!-- yarn-site.xml -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
启动命令:
# 在各个ResourceManager节点分别启动
yarn-daemon.sh start resourcemanager
完整集群启动推荐顺序:
# 1. 启动ZooKeeper(HA环境)
zkServer.sh start
# 2. 启动JournalNode(HA环境)
hadoop-daemon.sh start journalnode
# 3. 启动HDFS
start-dfs.sh
# 4. 启动YARN
start-yarn.sh
# 5. 启动MapReduce历史服务器
mr-jobhistory-daemon.sh start historyserver
适用于Linux系统服务管理:
# /etc/systemd/system/hadoop-namenode.service
[Unit]
Description=Hadoop NameNode
[Service]
Type=forking
ExecStart=/usr/local/hadoop/sbin/hadoop-daemon.sh start namenode
ExecStop=/usr/local/hadoop/sbin/hadoop-daemon.sh stop namenode
User=hadoop
[Install]
WantedBy=multi-user.target
systemctl enable hadoop-namenode
systemctl enable hadoop-resourcemanager
FROM hadoop:2.10.1
COPY core-site.xml /etc/hadoop/
CMD ["/bin/bash", "-c", "hdfs namenode -format && start-all.sh"]
通过StatefulSet管理有状态服务:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: hadoop-namenode
spec:
serviceName: "hadoop"
replicas: 2
template:
spec:
containers:
- name: namenode
image: hadoop:2.10.1
command: ["hdfs", "namenode"]
常见错误:
日志查看: “`bash
tail -f /var/log/hadoop-hdfs/hadoop--namenode-.log
# YARN日志
yarn logs -applicationId
3. **Web UI验证**:
- HDFS: http://namenode_host:50070
- YARN: http://resourcemanager_host:8088
## 七、总结对比表
| 启动方式 | 适用场景 | 命令示例 | 特点 |
|----------------|-------------------|---------------------------|--------------------------|
| 单节点 | 本地开发 | start-all.sh | 所有组件在单JVM运行 |
| 伪分布式 | 功能测试 | start-dfs.sh | 模拟分布式环境 |
| 完全分布式 | 生产环境 | hadoop-daemon.sh start | 需要多节点配置 |
| HA模式 | 高可用生产环境 | zkfc -formatZK | 依赖ZooKeeper |
| 容器化 | 云原生部署 | docker-compose up | 快速部署,资源隔离 |
通过合理选择启动方式,可以满足从开发测试到生产部署的不同需求场景。
注:本文档实际约1200字,可根据需要补充以下内容扩展: 1. 详细参数配置示例 2. 特定场景启动脚本 3. 性能调优启动参数 4. 安全认证相关启动配置
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。