首页主机资讯CentOS上如何部署Hadoop

CentOS上如何部署Hadoop

时间2025-11-26 10:47:03发布访客分类主机资讯浏览1336
导读:在 CentOS 上部署 Hadoop 的完整步骤 一 环境准备与系统要求 操作系统与网络:建议使用 CentOS 7/8,配置 静态 IP,确保节点间网络互通。 安全策略:为简化部署,测试环境可临时关闭 SELinux 与 防火墙;生产...

在 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 或重启会话。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS上如何部署Hadoop
本文地址: https://pptw.com/jishu/756477.html
CentOS下Hadoop安装步骤 CentOS与Hadoop兼容性怎样

游客 回复需填写必要信息