温馨提示×

CentOS Hadoop集群搭建步骤

小樊
54
2025-09-22 12:10:42
栏目: 智能运维

CentOS环境下Hadoop集群搭建步骤

1. 基础环境准备

1.1 网络与主机名配置

  • 为每台节点(Master/Slave)配置静态IP(如192.168.1.101~192.168.1.106),设置网关、DNS(如8.8.8.8),确保网络互通(ping测试)。
  • 修改主机名(如hadoop01~hadoop06):hostnamectl set-hostname hadoop01
  • 编辑/etc/hosts文件,添加IP与主机名映射(所有节点一致):
    192.168.1.101 hadoop01
    192.168.1.102 hadoop02
    192.168.1.103 hadoop03
    ...(依次添加所有节点)
    

1.2 关闭防火墙与SELinux

  • 临时关闭防火墙:systemctl stop firewalld;永久禁用:systemctl disable firewalld
  • 临时关闭SELinux:setenforce 0;永久禁用:编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled

1.3 安装JDK

  • 卸载系统自带JDK:rpm -qa | grep jdk | xargs -n1 rpm -e --nodeps
  • 安装OpenJDK 1.8:yum install -y java-1.8.0-openjdk-devel
  • 验证安装:java -version(需显示1.8.0版本)。
  • 配置环境变量:编辑/etc/profile,添加:
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    export PATH=$PATH:$JAVA_HOME/bin
    
    生效:source /etc/profile

1.4 安装Hadoop

  • 从Apache官网下载Hadoop(如3.3.4版本):wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
  • 解压到/opt目录:tar -zxvf hadoop-3.3.4.tar.gz -C /opt/
  • 重命名目录:mv /opt/hadoop-3.3.4 /opt/hadoop
  • 配置环境变量:编辑/etc/profile,添加:
    export HADOOP_HOME=/opt/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    生效:source /etc/profile

2. SSH免密登录配置

  • 在Master节点(如hadoop01)生成密钥:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  • 将公钥复制到所有节点(包括自身):
    ssh-copy-id hadoop01
    ssh-copy-id hadoop02
    ssh-copy-id hadoop03
    ...(依次复制到所有节点)
    
  • 验证免密登录:ssh hadoop02(无需输入密码)。

3. Hadoop配置文件修改

进入$HADOOP_HOME/etc/hadoop目录,修改以下核心配置文件:

3.1 core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop01:9000</value> <!-- NameNode RPC地址 -->
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value> <!-- 临时目录 -->
  </property>
</configuration>

3.2 hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value> <!-- 数据副本数(根据节点数调整) -->
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/hadoop/dfs/name</value> <!-- NameNode元数据目录 -->
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/hadoop/dfs/data</value> <!-- DataNode数据目录 -->
  </property>
</configuration>

3.3 mapred-site.xml

  • 若文件不存在,复制模板:cp mapred-site.xml.template mapred-site.xml
  • 修改内容:
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value> <!-- 使用YARN作为资源管理器 -->
      </property>
    </configuration>
    

3.4 yarn-site.xml

<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop01</value> <!-- ResourceManager所在节点 -->
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value> <!-- Shuffle服务 -->
  </property>
</configuration>

3.5 workers文件

  • 编辑$HADOOP_HOME/etc/hadoop/workers,添加所有DataNode节点的主机名:
    hadoop01
    hadoop02
    hadoop03
    ...(依次添加所有DataNode)
    

4. 启动Hadoop集群

4.1 格式化NameNode

  • 仅在首次启动时执行(会清空HDFS数据):
    hdfs namenode -format
    

4.2 启动HDFS

  • 在Master节点执行:
    start-dfs.sh
    
  • 验证DataNode是否启动:hdfs dfsadmin -report(显示所有DataNode状态)。

4.3 启动YARN

  • 在ResourceManager节点(hadoop01)执行:
    start-yarn.sh
    
  • 验证NodeManager是否启动:yarn node -list(显示所有NodeManager状态)。

4.4 启动JobHistory Server(可选)

  • 在Master节点执行:
    mapred --daemon start historyserver
    
  • 访问历史任务:http://hadoop01:19888

5. 验证集群状态

  • Web界面验证
    • HDFS Web UI:http://hadoop01:9870(查看NameNode、DataNode状态)。
    • YARN Web UI:http://hadoop01:8088(查看ResourceManager、NodeManager状态)。
  • 命令行验证
    • 查看HDFS文件系统:hdfs dfs -ls /
    • 查看YARN节点列表:yarn node -list
    • 查看Hadoop进程:jps(Master节点应显示NameNodeResourceManager;DataNode节点应显示DataNodeNodeManager)。

注意事项

  • 所有节点的JAVA_HOMEHADOOP_HOME环境变量需保持一致。
  • workers文件中的节点需与/etc/hosts中的映射一致。
  • 生产环境中建议开启**高可用(HA)**配置(如NameNode HA、ZooKeeper仲裁),避免单点故障。

0