Hadoop单机部署CentOS指南:从零开始的完整配置教程
2025.09.17 11:04浏览量:0简介:本文详细阐述在CentOS系统上单机部署Hadoop的完整流程,涵盖环境准备、安装配置、验证测试及常见问题解决,帮助开发者快速搭建本地Hadoop开发环境。
一、环境准备与系统配置
1.1 CentOS系统要求
单机部署Hadoop需选择CentOS 7或8版本,建议使用64位系统以获得最佳性能。系统需满足至少4GB内存(建议8GB)、20GB可用磁盘空间(数据目录需额外空间),并确保网络连接正常。通过free -h
和df -h
命令可快速验证资源状态。
1.2 依赖组件安装
Hadoop依赖Java运行环境,推荐安装OpenJDK 11或Oracle JDK 8。通过以下命令完成安装:
sudo yum install -y java-11-openjdk-devel
java -version # 验证安装
配置JAVA_HOME环境变量,编辑~/.bashrc
文件添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc
1.3 用户与权限管理
为安全考虑,建议创建专用用户运行Hadoop服务:
sudo useradd hadoop
sudo passwd hadoop # 设置密码
sudo mkdir /opt/hadoop
sudo chown hadoop:hadoop /opt/hadoop
后续操作均以hadoop用户身份执行,避免直接使用root。
二、Hadoop安装与配置
2.1 版本选择与下载
推荐使用Hadoop 3.3.x稳定版本,从Apache官网下载二进制包:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /opt/hadoop
cd /opt/hadoop
ln -s hadoop-3.3.6 current # 创建软链接
2.2 核心配置文件修改
2.2.1 hadoop-env.sh配置
编辑etc/hadoop/hadoop-env.sh
,设置JAVA_HOME并调整内存参数:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export HADOOP_HEAPSIZE=2048 # 默认内存分配(MB)
2.2.2 core-site.xml配置
定义HDFS和YARN的默认访问地址:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
2.2.3 hdfs-site.xml配置
设置NameNode数据存储路径和副本数:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> # 单机模式设为1
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value>
</property>
</configuration>
2.2.4 mapred-site.xml配置
指定MapReduce运行框架为YARN:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2.2.5 yarn-site.xml配置
配置资源管理器地址和节点管理器内存:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
</configuration>
2.3 格式化HDFS文件系统
首次启动前需格式化NameNode:
/opt/hadoop/current/bin/hdfs namenode -format
观察输出日志,确认出现”Storage directory … has been successfully formatted”提示。
三、服务启动与验证
3.1 服务启动顺序
按以下顺序启动服务(每个命令后需验证状态):
# 启动HDFS
/opt/hadoop/current/sbin/start-dfs.sh
# 启动YARN
/opt/hadoop/current/sbin/start-yarn.sh
# 验证服务状态
jps # 应显示NameNode、DataNode、ResourceManager、NodeManager进程
3.2 Web界面验证
通过浏览器访问以下端口验证服务:
- HDFS NameNode: http://localhost:9870
- YARN ResourceManager: http://localhost:8088
3.3 运行示例程序
执行经典的WordCount示例验证集群功能:
# 创建HDFS输入目录
/opt/hadoop/current/bin/hdfs dfs -mkdir -p /input
# 上传本地文件到HDFS
echo "Hello Hadoop World" > test.txt
/opt/hadoop/current/bin/hdfs dfs -put test.txt /input
# 运行WordCount程序
/opt/hadoop/current/bin/hadoop jar \
/opt/hadoop/current/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
wordcount /input /output
# 查看结果
/opt/hadoop/current/bin/hdfs dfs -cat /output/part-r-00000
四、常见问题与解决方案
4.1 端口冲突处理
若遇到”Address already in use”错误,通过以下步骤排查:
- 使用
netstat -tulnp | grep <端口号>
确认占用进程 - 修改配置文件中冲突的端口(如将9000改为9001)
- 重启服务前确保所有相关进程已终止
4.2 内存不足优化
当出现”OutOfMemoryError”时,调整以下参数:
- 在
hadoop-env.sh
中增加:export HADOOP_NAMENODE_OPTS="-Xmx1024m"
export HADOOP_DATANODE_OPTS="-Xmx1024m"
- 在
mapred-site.xml
中设置:<property>
<name>mapreduce.map.memory.mb</name>
<value>512</value>
</property>
4.3 数据目录权限问题
若出现”Permission denied”错误,执行:
sudo chown -R hadoop:hadoop /opt/hadoop/tmp
sudo chmod -R 755 /opt/hadoop/dfs
五、进阶配置建议
5.1 日志管理优化
配置日志滚动策略,编辑etc/hadoop/log4j.properties
:
log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DRFA.File=${hadoop.log.dir}/hadoop-${user.name}-namenode-${hostname}.log
log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
5.2 性能调优参数
在hdfs-site.xml
中添加:
<property>
<name>dfs.blocksize</name>
<value>134217728</value> # 128MB块大小
</property>
<property>
<name>dfs.datanode.handler.count</name>
<value>10</value> # 数据节点处理线程数
</property>
5.3 安全模式配置
启用简单认证(测试环境):
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>simple</value>
</property>
六、卸载与清理指南
当需要重新部署时,按以下步骤清理:
# 停止所有服务
/opt/hadoop/current/sbin/stop-yarn.sh
/opt/hadoop/current/sbin/stop-dfs.sh
# 删除数据目录
rm -rf /opt/hadoop/tmp /opt/hadoop/dfs
# 删除软件目录(可选)
rm -rf /opt/hadoop/hadoop-3.3.6
通过以上完整流程,开发者可在CentOS系统上快速搭建功能完备的Hadoop单机环境。建议后续扩展配置HBase、Hive等组件构建完整大数据平台,并定期通过hdfs fsck /
检查文件系统健康状态。实际生产环境中需考虑配置HA(高可用)和监控告警系统。
发表评论
登录后可评论,请前往 登录 或 注册