5154

Good Luck To You!

如何在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可确保数据在本地完整存储,不影响功能演示,生产环境需根据集群规模调整此参数。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.