如何在CentOS 7单机上成功搭建Hadoop环境?

Hadoop在CentOS 7单机环境下的部署与配置指南

准备工作

在开始Hadoop部署前,需确保系统满足基础要求并完成必要配置。

如何在CentOS 7单机上成功搭建Hadoop环境?

硬件与软件需求

  • 硬件:建议至少4GB内存(用于运行MapReduce任务)、50GB可用磁盘空间。
  • 软件:CentOS 7操作系统(64位)、Java JDK 8或11(Hadoop依赖Java运行时环境)。

关闭防火墙与SELinux
为避免网络访问限制,执行以下命令:

# 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld  
# 永久关闭SELinux(需重启生效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config  
reboot  # 重启后验证:getenforce应返回Disabled

配置主机名与hosts文件
设置静态主机名并添加本地解析:

hostnamectl set-hostname hadoop-node  
echo "127.0.0.1   localhost hadoop-node" >> /etc/hosts  

安装Java开发工具包(JDK)
通过yum安装OpenJDK并配置环境变量:

yum install java-1.8.0-openjdk-devel -y  
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> ~/.bashrc  
source ~/.bashrc  
java -version  # 验证版本输出

Hadoop核心组件介绍

Hadoop生态包含多个模块,单机部署仅需关注核心组件:

组件 功能描述 核心配置文件
HDFS 分布式文件系统 hdfs-site.xml
YARN 资源调度与管理框架 yarn-site.xml
MapReduce 分布式计算引擎 mapred-site.xml

Hadoop安装与配置步骤

下载与解压Hadoop
从Apache官网获取稳定版压缩包(如hadoop-3.3.6.tar.gz),解压至指定目录:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz  
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/  
ln -s /opt/hadoop-3.3.6 /opt/hadoop  # 创建软链接便于管理

配置环境变量
编辑~/.bashrc添加Hadoop路径:

如何在CentOS 7单机上成功搭建Hadoop环境?

echo "export HADOOP_HOME=/opt/hadoop" >> ~/.bashrc  
echo "export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> ~/.bashrc  
source ~/.bashrc  

修改核心配置文件
进入${HADOOP_HOME}/etc/hadoop目录,按顺序编辑以下文件:

  • hadoop-env.sh:指定Java路径

    echo "export JAVA_HOME=${JAVA_HOME}" >> hadoop-env.sh  
  • core-site.xml:配置默认文件系统与临时目录

    <configuration>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
      </property>
      <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/hadoop/data/tmp</value>
      </property>
    </configuration>
  • hdfs-site.xml:设置NameNode与DataNode存储路径

    <configuration>
      <property>
          <name>dfs.replication</name>
          <value>1</value>  <!-- 单机模式无需副本 -->
      </property>
      <property>
          <name>dfs.namenode.name.dir</name>
          <value>file:/opt/hadoop/data/namenode</value>
      </property>
      <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:/opt/hadoop/data/datanode</value>
      </property>
    </configuration>
  • mapred-site.xml:配置MapReduce框架

    <configuration>
      <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
      </property>
    </configuration>
  • yarn-site.xml:YARN资源管理器参数

    <configuration>
      <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>localhost</value>
      </property>
      <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
      </property>
    </configuration>

启动与验证服务

格式化NameNode
首次启动前需格式化HDFS命名空间:

如何在CentOS 7单机上成功搭建Hadoop环境?

hdfs namenode -format  

启动Hadoop集群
使用脚本启动所有组件:

start-dfs.sh && start-yarn.sh  
jps  # 验证进程:应包含NameNode、DataNode、ResourceManager、NodeManager

Web界面验证

  • HDFS管理界面:http://localhost:9870
  • YARN资源管理器:http://localhost:8088

常用操作示例

上传文件至HDFS

hdfs dfs -mkdir /input  
hdfs dfs -put /etc/passwd /input  
hdfs dfs -ls /input  # 列出文件

运行WordCount示例
将示例jar包复制到HDFS并执行:

hdfs dfs -copyFromLocal ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar .  
yarn jar hadoop-mapreduce-examples-*.jar wordcount /input /output  
hdfs dfs -cat /output/*  # 查看结果

相关问答FAQs

Q1:启动Hadoop时提示“Permission denied”错误,如何解决?
A:通常因目录权限不足导致,执行以下命令修复:

chown -R $USER:$USER /opt/hadoop/data  # 将数据目录所有权赋予当前用户  
chmod -R 755 /opt/hadoop/data          # 设置读写权限

Q2:为什么单机模式下HDFS的副本数设置为1?
A:HDFS默认副本数为3,但在单机环境中仅有一台节点,若设置多副本会导致写入失败,设为1可确保数据在本地完整存储,不影响功能演示,生产环境需根据集群规模调整此参数。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-22 08:39
下一篇 2025-10-22 08:48

相关推荐

  • CentOS进系统提示permission denied是什么原因?

    在CentOS系统的日常使用与管理中,“权限”是一个贯穿始终的核心概念,无论是登录系统、访问文件,还是运行服务,都与权限息息相关,当用户遇到“Permission denied”(权限被拒绝)的提示时,往往意味着对系统的权限模型理解不够深入,本文将系统性地梳理CentOS中的权限机制,从基础概念到常见问题的排查……

    2025-10-14
    006
  • centos后台任务如何设置?常用方法与注意事项有哪些?

    在CentOS系统中,后台任务的管理是系统运维和自动化操作中的关键环节,无论是执行长时间运行的脚本、定期维护任务,还是需要持续运行的服务,合理利用后台任务机制都能有效提升工作效率并避免终端阻塞,本文将详细介绍CentOS中后台任务的实现方式、管理技巧及注意事项,帮助读者全面掌握相关技能,后台任务的基本实现方法在……

    2025-11-28
    003
  • 如何培养掌握服务器应用技术的基础服务人才?

    服务器应用技术基础服务人才培养服务旨在提供专业的培训和教育,以满足市场对服务器管理、维护和优化技能的需求。通过系统的学习和实践操作,培养具备高级服务器应用能力的专业人才。

    2024-08-08
    006
  • CentOS服务器最佳分区方式是哪种?如何合理分配硬盘空间?

    CentOS 分区方式:高效与稳定的系统布局CentOS 作为一款广泛使用的开源操作系统,其分区方式直接影响到系统的性能、稳定性和可维护性,合理的分区策略可以优化资源利用,提高系统运行效率,本文将详细介绍 CentOS 的分区方式,并探讨其背后的原理和最佳实践,分区原理分区类型CentOS 支持多种分区类型,包……

    2026-01-30
    005

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信