温馨提示×

CentOS上如何部署Hadoop

小樊
48
2025-11-26 04:08:21
栏目: 智能运维

在 CentOS 上部署 Hadoop 的完整步骤

一 环境准备与系统要求

  • 操作系统与网络:建议使用 CentOS 7/8,配置 静态 IP,确保节点间网络互通。
  • 安全策略:为简化部署,测试环境可临时关闭 SELinux防火墙;生产环境应按需放行端口并细化安全策略。
  • Java 环境:Hadoop 3.x 要求 Java 8 或 11,推荐安装 OpenJDK 11
  • 用户与权限:建议创建专用用户(如 hadoopuser)并授予 sudo 权限,避免使用 root 直接运行。
  • 资源建议:至少 4GB 内存(建议 8GB+)、20GB+ 可用磁盘空间。

二 单机模式部署步骤(适合开发测试)

  • 安装 Java 并配置环境变量
    • 安装 OpenJDK 11:sudo yum install -y java-11-openjdk-devel
    • 配置 JAVA_HOME(写入 ~/.bashrc/etc/profile):
      • echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' >> ~/.bashrc
      • echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
      • source ~/.bashrc
  • 安装与配置 SSH(本机免密)
    • sudo yum install -y openssh-server
    • sudo systemctl start sshd && sudo systemctl enable sshd
    • ssh-keygen -t rsa(回车跳过密码)
    • cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
    • ssh localhost 验证
  • 下载并解压 Hadoop(以 3.3.6 为例)
    • wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
    • tar -xzvf hadoop-3.3.6.tar.gz -C /opt/
    • sudo chown -R hadoopuser:hadoopuser /opt/hadoop-3.3.6
  • 配置 Hadoop 环境变量(~/.bashrc
    • echo 'export HADOOP_HOME=/opt/hadoop-3.3.6' >> ~/.bashrc
    • echo 'export PATH=$HADOOP_HOME/bin:$PATH' >> ~/.bashrc
    • echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> ~/.bashrc
    • source ~/.bashrc
  • 核心配置(位于 $HADOOP_HOME/etc/hadoop/
    • core-site.xml
      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
        </property>
      </configuration>
      
    • hdfs-site.xml
      <configuration>
        <property>
          <name>dfs.replication</name>
          <value>1</value>
        </property>
      </configuration>
      
    • mapred-site.xml(如文件不存在可复制模板 mapred-site.xml.template)
      <configuration>
        <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
        </property>
      </configuration>
      
    • yarn-site.xml
      <configuration>
        <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
        </property>
        <property>
          <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
          <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
      </configuration>
      
  • 初始化与启动
    • 格式化 HDFS:hdfs namenode -format(仅首次)
    • 启动:start-dfs.sh && start-yarn.sh
  • 验证
    • jps 应看到 NameNode、DataNode、ResourceManager、NodeManager
    • 浏览器访问:http://localhost:9870(HDFS NameNode Web UI)与 http://localhost:8088(YARN ResourceManager)

三 伪分布式与多节点集群部署要点

  • 节点规划与主机名解析
    • 规划角色:至少 1 个 NameNode1 个 ResourceManager、若干 DataNode/NodeManager;准备 SSH 免密登录(主节点到所有节点)。
    • 配置 /etc/hosts 或使用 DNS,确保主机名可解析。
  • 配置文件关键项(示例为伪分布式,多节点时将主机名替换为实际节点名)
    • core-site.xml
      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://namenode:9000</value>
        </property>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/usr/local/hadoop/tmp</value>
        </property>
      </configuration>
      
    • hdfs-site.xml
      <configuration>
        <property>
          <name>dfs.replication</name>
          <value>1</value>
        </property>
        <property>
          <name>dfs.namenode.name.dir</name>
          <value>/usr/local/hadoop/data/namenode</value>
        </property>
        <property>
          <name>dfs.datanode.data.dir</value>
          <value>/usr/local/hadoop/data/datanode</value>
        </property>
      </configuration>
      
    • yarn-site.xml
      <configuration>
        <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
        </property>
        <property>
          <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
          <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>resourcemanager</value>
        </property>
      </configuration>
      
  • 启动与验证
    • 仅在 NameNode 上执行:hdfs namenode -format
    • 启动:start-dfs.sh && start-yarn.sh
    • jps 检查进程,访问 9870/8088 验证 Web UI。

四 常见问题与排查

  • SSH 无法免密登录:确认 ~/.ssh/authorized_keys 权限为 600,并确保 sshd 已启动。
  • Java 版本不兼容:Hadoop 3.xJava 8/11,用 java -version 校验,必要时切换 JAVA_HOME
  • 端口被占用或访问受限:检查 9870/8088 端口占用与防火墙/SELinux 策略。
  • 权限问题:若以 hadoopuser 运行,确保 HDFS 目录与日志目录属主正确。
  • 配置未生效:修改环境变量后执行 source ~/.bashrc 或重启会话。

0