logo

Hadoop单机部署CentOS指南:从零开始的完整配置教程

作者:沙与沫2025.09.17 11:04浏览量:0

简介:本文详细阐述在CentOS系统上单机部署Hadoop的完整流程,涵盖环境准备、安装配置、验证测试及常见问题解决,帮助开发者快速搭建本地Hadoop开发环境。

一、环境准备与系统配置

1.1 CentOS系统要求

单机部署Hadoop需选择CentOS 7或8版本,建议使用64位系统以获得最佳性能。系统需满足至少4GB内存(建议8GB)、20GB可用磁盘空间(数据目录需额外空间),并确保网络连接正常。通过free -hdf -h命令可快速验证资源状态。

1.2 依赖组件安装

Hadoop依赖Java运行环境,推荐安装OpenJDK 11或Oracle JDK 8。通过以下命令完成安装:

  1. sudo yum install -y java-11-openjdk-devel
  2. java -version # 验证安装

配置JAVA_HOME环境变量,编辑~/.bashrc文件添加:

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

1.3 用户与权限管理

安全考虑,建议创建专用用户运行Hadoop服务:

  1. sudo useradd hadoop
  2. sudo passwd hadoop # 设置密码
  3. sudo mkdir /opt/hadoop
  4. sudo chown hadoop:hadoop /opt/hadoop

后续操作均以hadoop用户身份执行,避免直接使用root。

二、Hadoop安装与配置

2.1 版本选择与下载

推荐使用Hadoop 3.3.x稳定版本,从Apache官网下载二进制包:

  1. wget https://downloads.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/hadoop
  3. cd /opt/hadoop
  4. ln -s hadoop-3.3.6 current # 创建软链接

2.2 核心配置文件修改

2.2.1 hadoop-env.sh配置

编辑etc/hadoop/hadoop-env.sh,设置JAVA_HOME并调整内存参数:

  1. export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
  2. export HADOOP_HEAPSIZE=2048 # 默认内存分配(MB)

2.2.2 core-site.xml配置

定义HDFS和YARN的默认访问地址:

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

2.2.3 hdfs-site.xml配置

设置NameNode数据存储路径和副本数:

  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/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>/opt/hadoop/dfs/data</value>
  13. </property>
  14. </configuration>

2.2.4 mapred-site.xml配置

指定MapReduce运行框架为YARN:

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>

2.2.5 yarn-site.xml配置

配置资源管理器地址和节点管理器内存:

  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.hostname</name>
  4. <value>localhost</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.resource.memory-mb</name>
  8. <value>2048</value>
  9. </property>
  10. </configuration>

2.3 格式化HDFS文件系统

首次启动前需格式化NameNode:

  1. /opt/hadoop/current/bin/hdfs namenode -format

观察输出日志,确认出现”Storage directory … has been successfully formatted”提示。

三、服务启动与验证

3.1 服务启动顺序

按以下顺序启动服务(每个命令后需验证状态):

  1. # 启动HDFS
  2. /opt/hadoop/current/sbin/start-dfs.sh
  3. # 启动YARN
  4. /opt/hadoop/current/sbin/start-yarn.sh
  5. # 验证服务状态
  6. jps # 应显示NameNode、DataNode、ResourceManager、NodeManager进程

3.2 Web界面验证

通过浏览器访问以下端口验证服务:

3.3 运行示例程序

执行经典的WordCount示例验证集群功能:

  1. # 创建HDFS输入目录
  2. /opt/hadoop/current/bin/hdfs dfs -mkdir -p /input
  3. # 上传本地文件到HDFS
  4. echo "Hello Hadoop World" > test.txt
  5. /opt/hadoop/current/bin/hdfs dfs -put test.txt /input
  6. # 运行WordCount程序
  7. /opt/hadoop/current/bin/hadoop jar \
  8. /opt/hadoop/current/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
  9. wordcount /input /output
  10. # 查看结果
  11. /opt/hadoop/current/bin/hdfs dfs -cat /output/part-r-00000

四、常见问题与解决方案

4.1 端口冲突处理

若遇到”Address already in use”错误,通过以下步骤排查:

  1. 使用netstat -tulnp | grep <端口号>确认占用进程
  2. 修改配置文件中冲突的端口(如将9000改为9001)
  3. 重启服务前确保所有相关进程已终止

4.2 内存不足优化

当出现”OutOfMemoryError”时,调整以下参数:

  • hadoop-env.sh中增加:
    1. export HADOOP_NAMENODE_OPTS="-Xmx1024m"
    2. export HADOOP_DATANODE_OPTS="-Xmx1024m"
  • mapred-site.xml中设置:
    1. <property>
    2. <name>mapreduce.map.memory.mb</name>
    3. <value>512</value>
    4. </property>

4.3 数据目录权限问题

若出现”Permission denied”错误,执行:

  1. sudo chown -R hadoop:hadoop /opt/hadoop/tmp
  2. sudo chmod -R 755 /opt/hadoop/dfs

五、进阶配置建议

5.1 日志管理优化

配置日志滚动策略,编辑etc/hadoop/log4j.properties

  1. log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
  2. log4j.appender.DRFA.File=${hadoop.log.dir}/hadoop-${user.name}-namenode-${hostname}.log
  3. log4j.appender.DRFA.DatePattern=.yyyy-MM-dd

5.2 性能调优参数

hdfs-site.xml中添加:

  1. <property>
  2. <name>dfs.blocksize</name>
  3. <value>134217728</value> # 128MB块大小
  4. </property>
  5. <property>
  6. <name>dfs.datanode.handler.count</name>
  7. <value>10</value> # 数据节点处理线程数
  8. </property>

5.3 安全模式配置

启用简单认证(测试环境):

  1. <property>
  2. <name>hadoop.http.staticuser.user</name>
  3. <value>hadoop</value>
  4. </property>
  5. <property>
  6. <name>hadoop.security.authentication</name>
  7. <value>simple</value>
  8. </property>

六、卸载与清理指南

当需要重新部署时,按以下步骤清理:

  1. # 停止所有服务
  2. /opt/hadoop/current/sbin/stop-yarn.sh
  3. /opt/hadoop/current/sbin/stop-dfs.sh
  4. # 删除数据目录
  5. rm -rf /opt/hadoop/tmp /opt/hadoop/dfs
  6. # 删除软件目录(可选)
  7. rm -rf /opt/hadoop/hadoop-3.3.6

通过以上完整流程,开发者可在CentOS系统上快速搭建功能完备的Hadoop单机环境。建议后续扩展配置HBase、Hive等组件构建完整大数据平台,并定期通过hdfs fsck /检查文件系统健康状态。实际生产环境中需考虑配置HA(高可用)和监控告警系统。

相关文章推荐

发表评论