服务器Hadoop安装需科学规划、分步执行,确保高可用与可扩展性
基于生产环境验证的标准化部署方案
核心前提:环境准备决定成败
服务器Hadoop安装前,必须完成三项关键准备:
-
硬件配置
- 至少3台服务器(1主节点+2从节点),推荐8核/16GB RAM/500GB SSD
- 主节点需独立磁盘挂载
/data(用于NameNode元数据) - 所有节点时间同步(NTP服务必须启用)
-
软件依赖
- 操作系统:CentOS 7.9 或 Ubuntu 20.04 LTS(避免使用Windows Server)
- Java 8/11:Hadoop 3.3.x 仅兼容 JDK 8/11,JDK 17需验证兼容性
- SSH免密登录:主节点到所有从节点需配置无密码登录
-
网络要求
- 内网千兆以上带宽,禁用防火墙或开放关键端口(如9866、9870、8088)
- 主机名解析:
/etc/hosts明确映射 IP → hostname(禁止依赖DNS)
标准化安装步骤(以Hadoop 3.3.6为例)
步骤1:统一部署基础环境
- 创建hadoop用户组与用户:
groupadd hadoop && useradd -g hadoop -m hadoop
- 配置SSH免密:
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
- 分发公钥至从节点:
ssh-copy-id hadoop@slave1 ssh-copy-id hadoop@slave2
步骤2:解压与路径规划
- 上传Hadoop安装包至
/opt:tar -zxvf hadoop-3.3.6.tar.gz -C /opt/ ln -s /opt/hadoop-3.3.6 /opt/hadoop
- 关键目录权限归属:
chown -R hadoop:hadoop /opt/hadoop mkdir -p /data/hadoop/{namenode,datanode,journal} chown -R hadoop:hadoop /data/hadoop
步骤3:核心配置文件($HADOOP_HOME/etc/hadoop/)
重点配置项必须人工校验,避免默认值埋雷:
| 文件 | 必改参数 | 推荐值 |
|---|---|---|
core-site.xml |
fs.defaultFS |
hdfs://master:9000 |
hadoop.tmp.dir |
/data/hadoop/tmp |
|
hdfs-site.xml |
dfs.replication |
2(3节点集群避免3副本导致磁盘过载) |
dfs.namenode.name.dir |
file:///data/hadoop/namenode |
|
dfs.datanode.data.dir |
file:///data/hadoop/datanode |
|
yarn-site.xml |
yarn.nodemanager.resource.memory-mb |
12288(预留4GB给系统) |
yarn.scheduler.maximum-allocation-mb |
12288 |
|
workers |
从节点主机名 | slave1 slave2(每行一个,无空格) |
注:JournalNode配置需单独指定
dfs.journalnode.edits.dir,高可用场景必配。
启动与验证:三步确认部署成功
- 格式化NameNode(仅首次执行):
hdfs namenode -format
- 启动HDFS与YARN服务:
start-dfs.sh && start-yarn.sh
- 验证服务状态:
- 访问
http://master:9870→ 检查DataNode是否在线 - 执行
hdfs dfsadmin -report→ 确认存储容量与健康状态 - 运行MapReduce测试:
hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 2 1000
- 访问
生产环境避坑指南
三大高频故障及解决方案:
-
DataNode无法启动
- 原因:
clusterId不匹配(多次格式化导致) - 解决:删除所有节点
/data/hadoop/datanode和/data/hadoop/namenode,重新格式化
- 原因:
-
YARN任务卡在ACCEPTED状态
- 原因:内存分配超限
- 解决:调整
yarn.scheduler.maximum-allocation-mb≤ 物理内存70%
-
Web UI无法访问
- 原因:SELinux未关闭
- 解决:
setenforce 0临时关闭,或永久编辑/etc/selinux/config
相关问答
Q:单节点服务器能否用于生产?
A:不建议,Hadoop设计核心是分布式容错,单节点虽可测试,但失去数据冗余与计算并行优势,生产环境至少3节点起步。
Q:能否直接用Docker部署?
A:开发测试可用(如 bde2020/hadoop 镜像),但生产环境需谨慎,容器化会增加I/O开销,且网络/存储卷管理复杂,建议仅用于轻量级业务。
您在服务器Hadoop安装中遇到过哪些具体问题?欢迎留言分享您的解决方案!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/176319.html