logo

CentOS系统下Hadoop单机模式部署指南

作者:狼烟四起2025.09.12 11:09浏览量:3

简介:本文详细介绍在CentOS 7/8系统上以单机模式部署Hadoop 3.x的完整流程,涵盖环境准备、依赖安装、配置文件修改及验证测试等关键环节,适合开发测试与教学场景使用。

CentOS系统下Hadoop单机模式部署指南

一、环境准备与系统要求

在CentOS系统上部署Hadoop单机模式前,需确保系统满足以下基础条件:

  1. 系统版本:推荐使用CentOS 7或CentOS 8(需关闭SELinux并配置防火墙)
  2. 硬件配置:至少4GB内存(建议8GB+)、20GB可用磁盘空间
  3. 网络环境:需配置静态IP地址,确保网络连通性
  4. 用户权限:建议创建专用用户(如hadoopuser)而非直接使用root
  1. # 创建专用用户示例
  2. sudo useradd -m hadoopuser
  3. sudo passwd hadoopuser
  4. sudo usermod -aG wheel hadoopuser # 授予sudo权限

二、依赖组件安装与配置

1. Java环境配置

Hadoop 3.x要求Java 8或11版本,推荐使用OpenJDK:

  1. # 安装OpenJDK 11
  2. sudo yum install -y java-11-openjdk-devel
  3. # 验证安装
  4. java -version
  5. # 应输出类似:openjdk version "11.0.xx"

配置JAVA_HOME环境变量(修改~/.bashrc/etc/profile):

  1. echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' >> ~/.bashrc
  2. echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
  3. source ~/.bashrc

2. SSH免密登录配置

单机模式虽不依赖分布式通信,但Hadoop组件启动时仍需SSH服务:

  1. sudo yum install -y openssh-server
  2. sudo systemctl start sshd
  3. sudo systemctl enable sshd
  4. # 生成密钥对(直接回车跳过密码)
  5. ssh-keygen -t rsa
  6. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  7. chmod 600 ~/.ssh/authorized_keys
  8. # 验证SSH本地登录
  9. ssh localhost

三、Hadoop安装与配置

1. 下载与解压

从Apache官网获取稳定版Hadoop(本文以3.3.6为例):

  1. wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
  2. tar -xzvf hadoop-3.3.6.tar.gz -C /opt/
  3. sudo chown -R hadoopuser:hadoopuser /opt/hadoop-3.3.6

2. 环境变量配置

修改~/.bashrc文件:

  1. echo 'export HADOOP_HOME=/opt/hadoop-3.3.6' >> ~/.bashrc
  2. echo 'export PATH=$HADOOP_HOME/bin:$PATH' >> ~/.bashrc
  3. echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> ~/.bashrc
  4. source ~/.bashrc

3. 核心配置文件修改

(1) hadoop-env.sh

  1. vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
  2. # 取消以下行注释并修改
  3. export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
  4. export HADOOP_LOG_DIR=/var/log/hadoop

(2) core-site.xml

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>/opt/hadoop-3.3.6/tmp</value>
  5. </property>
  6. <property>
  7. <name>fs.defaultFS</name>
  8. <value>hdfs://localhost:9000</value>
  9. </property>
  10. </configuration>

(3) hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value> <!-- 单机模式设为1 -->
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>/opt/hadoop-3.3.6/data/namenode</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>/opt/hadoop-3.3.6/data/datanode</value>
  13. </property>
  14. </configuration>

四、格式化与启动验证

1. 格式化HDFS文件系统

  1. hdfs namenode -format
  2. # 成功输出应包含"Storage directory ... has been successfully formatted"

2. 启动Hadoop服务

  1. # 启动HDFS(单机模式只需启动NameNode和DataNode)
  2. $HADOOP_HOME/sbin/start-dfs.sh
  3. # 验证进程状态
  4. jps
  5. # 应显示NameNode、DataNode、SecondaryNameNode进程

3. 基础功能测试

(1) Web界面访问

(2) HDFS操作测试

  1. # 创建测试目录
  2. hdfs dfs -mkdir /test
  3. # 上传本地文件
  4. echo "Hello Hadoop" > test.txt
  5. hdfs dfs -put test.txt /test/
  6. # 查看文件列表
  7. hdfs dfs -ls /test
  8. # 下载文件验证
  9. hdfs dfs -get /test/test.txt test_download.txt
  10. cat test_download.txt

五、常见问题解决方案

1. 权限拒绝错误

现象Permission denied: user=..., access=WRITE
解决

  1. # 修改HDFS目录权限
  2. hdfs dfs -chmod -R 777 /
  3. # 或创建专用用户并配置hdfs-site.xml的权限策略

2. 端口冲突问题

现象Address already in use
解决

  1. # 修改配置文件中的端口号(如9000→9001)
  2. netstat -tulnp | grep java # 确认占用端口

3. 内存不足错误

现象Could not reserve enough space for object heap
解决
修改hadoop-env.sh中的内存参数:

  1. export HADOOP_HEAPSIZE=1024 # 默认单位MB
  2. export HADOOP_NAMENODE_OPTS="-Xms512m -Xmx1024m"

六、优化建议与扩展应用

  1. 日志管理:配置log4j.properties实现日志分级存储
  2. 监控集成:通过Ganglia或Prometheus监控单机运行状态
  3. 数据备份:定期备份namenode的metadata目录
  4. 版本升级:关注Apache官网的安全补丁更新

七、卸载清理流程

  1. # 停止所有服务
  2. $HADOOP_HOME/sbin/stop-dfs.sh
  3. # 删除安装目录和数据
  4. rm -rf /opt/hadoop-3.3.6
  5. rm -rf /var/log/hadoop
  6. # 清理环境变量
  7. sed -i '/HADOOP_HOME/d' ~/.bashrc
  8. sed -i '/HADOOP_CONF_DIR/d' ~/.bashrc

通过以上步骤,您可在CentOS系统上快速搭建Hadoop单机环境,该模式特别适用于:

  • 开发阶段的单元测试
  • 教学演示与原型验证
  • 小规模数据处理实验
  • 集群部署前的功能验证

建议后续根据实际需求向伪分布式或完全分布式模式迁移,以获得更完整的Hadoop生态体验。

相关文章推荐

发表评论