logo

CentOS环境下单机Hadoop部署全指南

作者:carzy2025.09.17 11:04浏览量:0

简介:本文详细介绍在CentOS系统上部署单机版Hadoop的完整流程,涵盖环境准备、安装配置及基础操作验证,帮助开发者快速搭建本地大数据开发环境。

一、部署前环境准备

1.1 系统版本选择

推荐使用CentOS 7或8版本,这两个版本在Hadoop社区中经过充分验证。建议选择最小化安装镜像,避免不必要的服务占用资源。安装完成后执行cat /etc/redhat-release确认系统版本,使用free -hdf -h检查内存(建议≥8GB)和磁盘空间(建议≥50GB)。

1.2 用户权限管理

创建专用用户组和用户:

  1. sudo groupadd hadoop
  2. sudo useradd -g hadoop hduser
  3. sudo passwd hduser # 设置密码

将当前用户加入sudoers(可选但推荐):

  1. sudo usermod -aG wheel hduser # CentOS 7
  2. # 或
  3. sudo usermod -aG wheel $(whoami) # 为当前用户添加权限

1.3 网络与防火墙配置

关闭SELinux临时生效:

  1. sudo setenforce 0

永久禁用需修改/etc/selinux/config文件。防火墙配置:

  1. sudo systemctl stop firewalld
  2. sudo systemctl disable firewalld

或开放特定端口:

  1. sudo firewall-cmd --zone=public --add-port=8088/tcp --permanent
  2. sudo firewall-cmd --reload

二、Java环境搭建

2.1 OpenJDK安装

Hadoop 3.x推荐使用Java 11:

  1. sudo yum install -y java-11-openjdk-devel

验证安装:

  1. java -version
  2. javac -version

设置JAVA_HOME环境变量:

  1. echo "export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))" >> ~/.bashrc
  2. echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc
  3. source ~/.bashrc

2.2 版本兼容性说明

Hadoop 2.x支持Java 7/8,Hadoop 3.x建议使用Java 8/11。可通过hadoop checkenvironment验证Java版本兼容性。

三、Hadoop安装配置

3.1 下载与解压

从Apache官网获取稳定版(推荐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 hduser:hadoop /opt/hadoop-3.3.6

3.2 核心配置文件修改

etc/hadoop/hadoop-env.sh

  1. export HADOOP_HOME=/opt/hadoop-3.3.6
  2. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  3. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

etc/hadoop/core-site.xml

  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-3.3.6/tmp</value>
  9. </property>
  10. </configuration>

etc/hadoop/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>

3.3 格式化与启动

创建必要目录:

  1. sudo mkdir -p /opt/hadoop-3.3.6/{tmp,data/{namenode,datanode}}
  2. sudo chown -R hduser:hadoop /opt/hadoop-3.3.6

执行格式化(仅首次需要):

  1. hdfs namenode -format

启动HDFS服务:

  1. start-dfs.sh

验证进程:

  1. jps
  2. # 应看到NameNode、DataNode、SecondaryNameNode

四、基础操作验证

4.1 Web界面访问

4.2 命令行操作

创建HDFS目录:

  1. hdfs dfs -mkdir /user
  2. hdfs dfs -mkdir /user/hduser

上传测试文件:

  1. echo "Hello Hadoop" > testfile.txt
  2. hdfs dfs -put testfile.txt /user/hduser/

查看文件:

  1. hdfs dfs -ls /user/hduser/
  2. hdfs dfs -cat /user/hduser/testfile.txt

4.3 运行示例MapReduce

编译官方示例:

  1. cd $HADOOP_HOME/share/hadoop/mapreduce
  2. hadoop com.sun.tools.javac.Main *.java
  3. jar cf mr.jar *.class

执行计算:

  1. hadoop jar mr.jar pi 2 5

五、常见问题解决方案

5.1 权限拒绝问题

症状:Permission denied错误
解决方案:

  1. # 方法1:修改HDFS权限
  2. hdfs dfs -chmod -R 777 /
  3. # 方法2:修改配置文件
  4. <property>
  5. <name>dfs.permissions</name>
  6. <value>false</value>
  7. </property>

5.2 端口冲突处理

使用netstat -tulnp检查端口占用,修改core-site.xmlmapred-site.xml中的端口配置。

5.3 日志分析技巧

主要日志位置:

  • NameNode日志:$HADOOP_HOME/logs/hadoop-*-namenode-*.log
  • DataNode日志:$HADOOP_HOME/logs/hadoop-*-datanode-*.log
    使用tail -f实时监控日志变化。

六、性能优化建议

  1. 内存配置:修改mapred-site.xml

    1. <property>
    2. <name>mapreduce.map.memory.mb</name>
    3. <value>1024</value>
    4. </property>
    5. <property>
    6. <name>mapreduce.reduce.memory.mb</name>
    7. <value>2048</value>
    8. </property>
  2. 本地缓存:在core-site.xml中设置

    1. <property>
    2. <name>io.file.buffer.size</name>
    3. <value>131072</value> <!-- 128KB -->
    4. </property>
  3. 垃圾回收优化:在hadoop-env.sh中添加JVM参数

    1. export HADOOP_OPTS="-XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=35"

通过以上步骤,您可以在CentOS系统上成功部署并运行单机版Hadoop环境。建议定期备份配置文件和数据目录,同时关注Apache Hadoop官方文档获取最新版本更新和安全补丁。

相关文章推荐

发表评论