centos

CentOS Hadoop如何安装与配置

小樊
57
2025-09-26 18:26:28
栏目: 智能运维

CentOS环境下Hadoop安装与配置指南(单机/伪分布式模式)

一、前置准备

  1. 系统要求

    • CentOS 7/8及以上版本(建议使用纯净系统,避免冲突)。
    • 确保系统已联网,能访问Apache Hadoop官网下载资源。
  2. 安装Java环境(JDK 8+)
    Hadoop依赖Java运行,需先安装OpenJDK 8:

    sudo yum install -y java-1.8.0-openjdk-devel
    # 验证安装
    java -version  # 应输出Java 1.8版本信息
    
  3. 下载并解压Hadoop
    从Apache Hadoop官网下载稳定版本(如3.3.1),解压至/usr/local/

    cd /usr/local
    sudo wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
    sudo tar -xzvf hadoop-3.3.1.tar.gz
    sudo mv hadoop-3.3.1 hadoop  # 重命名为hadoop方便管理
    
  4. 配置Hadoop环境变量
    编辑/etc/profile.d/hadoop.sh(全局生效),添加以下内容:

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk  # Java安装路径(通过`which java`确认)
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    使配置生效:

    source /etc/profile.d/hadoop.sh
    # 验证Hadoop命令
    hadoop version  # 应输出Hadoop版本信息
    
  5. 配置SSH无密码登录(单机模式可选,集群必需)
    若需实现NameNode与DataNode的无密码通信,执行以下命令:

    ssh-keygen -t rsa  # 生成密钥对(直接回车,默认路径)
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  # 将公钥加入授权文件
    chmod 600 ~/.ssh/authorized_keys  # 设置权限
    # 测试无密码登录
    ssh localhost  # 应无需输入密码直接登录
    

二、Hadoop核心配置文件修改

Hadoop的主要配置文件位于$HADOOP_HOME/etc/hadoop/目录下,需修改以下4个核心文件:

1. core-site.xml(系统级配置)

定义HDFS的默认文件系统和临时目录:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>  <!-- HDFS的默认URI,localhost表示单机 -->
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>  <!-- Hadoop临时文件目录(需手动创建) -->
    </property>
</configuration>
2. hdfs-site.xml(HDFS特有配置)

配置NameNode、DataNode的存储路径及副本数(单机模式副本数为1):

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>  <!-- 数据块副本数(集群中需调整为大于1的值) -->
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/hdfs/namenode</value>  <!-- NameNode元数据存储路径 -->
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/hdfs/datanode</value>  <!-- DataNode数据存储路径 -->
    </property>
</configuration>
3. mapred-site.xml(MapReduce配置)

指定MapReduce框架为YARN(需先配置YARN):

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>  <!-- MapReduce运行在YARN上 -->
    </property>
</configuration>
4. yarn-site.xml(YARN配置)

配置ResourceManager和NodeManager的辅助服务:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>  <!-- NodeManager提供的辅助服务(Shuffle) -->
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>  <!-- Shuffle服务的具体实现 -->
    </property>
</configuration>

三、格式化HDFS并启动集群

  1. 格式化HDFS(首次启动必需)
    格式化会清除HDFS中的所有数据,仅首次启动时执行:

    hdfs namenode -format
    
  2. 启动Hadoop集群
    启动HDFS和YARN服务:

    start-dfs.sh  # 启动HDFS(NameNode、DataNode)
    start-yarn.sh  # 启动YARN(ResourceManager、NodeManager)
    
  3. 验证集群状态
    使用jps命令查看进程:

    jps
    

    正常应输出以下进程(单机模式):

    • NameNode(HDFS主节点)
    • DataNode(HDFS数据节点)
    • SecondaryNameNode(HDFS辅助节点,可选)
    • ResourceManager(YARN资源管理器)
    • NodeManager(YARN节点管理器)

    也可通过Web界面查看集群状态(默认端口):

    • HDFS NameNode:http://localhost:9870
    • YARN ResourceManager:http://localhost:8088

四、常见问题排查

  1. 端口冲突
    若启动时报端口被占用(如9000、50070),可通过netstat -tulnp | grep 端口号查找占用进程,杀掉冲突进程或修改core-site.xml中的端口。

  2. 权限问题
    若出现Permission denied错误,需检查Hadoop目录的权限(如/usr/local/hadoop),确保hadoop用户有读写权限:

    sudo chown -R hadoop:hadoop /usr/local/hadoop
    
  3. 环境变量未生效
    hadoop version报错,需重新执行source /etc/profile或重启终端。

通过以上步骤,即可在CentOS上完成Hadoop的单机/伪分布式安装与配置。如需扩展为多节点集群,只需在每台节点上重复安装步骤,并修改core-site.xml中的fs.defaultFS为NameNode的实际IP地址,同时调整hdfs-site.xml中的dfs.replication为集群节点数即可。

0
看了该问题的人还看了