首页主机资讯CentOS下Hadoop集群搭建

CentOS下Hadoop集群搭建

时间2025-11-26 10:44:04发布访客分类主机资讯浏览711
导读:CentOS 7 下搭建 Hadoop 3.x 集群 一 环境规划与准备 节点规划(示例): master:NameNode + ResourceManager slave1、slave2:DataNode + NodeManager...

CentOS 7 下搭建 Hadoop 3.x 集群

一 环境规划与准备

  • 节点规划(示例):
    • masterNameNode + ResourceManager
    • slave1、slave2DataNode + NodeManager
  • 软件与系统:
    • CentOS 7/8
    • Java 8(OpenJDK 8 或 Oracle JDK 8)
    • Hadoop 3.3.x(示例:3.3.1
  • 基础网络与主机名(所有节点一致):
    • 配置静态 IP,编辑 /etc/hosts
    • 示例:
      192.168.1.100 master
      192.168.1.101 slave1
      192.168.1.102 slave2
      
    • 关闭防火墙或放行端口(示例关闭):
      sudo systemctl stop firewalld
      sudo systemctl disable firewalld
      
    • 可选:临时关闭 SELinux(生产请按需配置策略)
      sudo setenforce 0
      sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
      
  • 创建专用用户(所有节点):
    sudo useradd hadoop
    sudo passwd hadoop
    su - hadoop
    

以上准备与网络、防火墙、SELinux、hosts 配置为集群互通与后续服务启动的基础。

二 安装 Java 与 Hadoop

  • 安装 Java(所有节点):
    sudo yum install -y java-1.8.0-openjdk-devel
    java -version
    
  • 下载并解压 Hadoop(建议在主节点操作,随后同步到从节点):
    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
    sudo tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local
    sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
    sudo chown -R hadoop:hadoop /usr/local/hadoop
    
  • 配置环境变量(所有节点,建议写入 ~/.bashrc/etc/profile):
    echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >
        >
         ~/.bashrc
    echo 'export HADOOP_HOME=/usr/local/hadoop' >
        >
         ~/.bashrc
    echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >
        >
     ~/.bashrc
    source ~/.bashrc
    

以上步骤完成 Java 与 Hadoop 的基础安装与环境变量配置。

三 配置 Hadoop 核心文件

  • 目录约定(所有节点创建数据目录):
    mkdir -p $HADOOP_HOME/hdfs/{
    namenode,datanode}
        
    mkdir -p $HADOOP_HOME/yarn/local
    
  • 配置文件路径:$HADOOP_HOME/etc/hadoop/
  • core-site.xml
    <
        configuration>
        
      <
        property>
        
        <
        name>
        fs.defaultFS<
        /name>
        
        <
        value>
        hdfs://master: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>
        2<
        /value>
        
      <
        /property>
        
      <
        property>
        
        <
        name>
        dfs.namenode.name.dir<
        /name>
        
        <
        value>
        file:///usr/local/hadoop/hdfs/namenode<
        /value>
        
      <
        /property>
        
      <
        property>
        
        <
        name>
        dfs.datanode.data.dir<
        /name>
        
        <
        value>
        file:///usr/local/hadoop/hdfs/datanode<
        /value>
        
      <
        /property>
        
    <
        /configuration>
        
    
  • mapred-site.xml(如文件不存在,先 cp mapred-site.xml.template mapred-site.xml)
    <
        configuration>
        
      <
        property>
        
        <
        name>
        mapreduce.framework.name<
        /name>
        
        <
        value>
        yarn<
        /value>
        
      <
        /property>
        
    <
        /configuration>
        
    
  • yarn-site.xml
    <
        configuration>
        
      <
        property>
        
        <
        name>
        yarn.resourcemanager.hostname<
        /name>
        
        <
        value>
        master<
        /value>
        
      <
        /property>
        
      <
        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.nodemanager.local-dirs<
        /name>
        
        <
        value>
        /usr/local/hadoop/yarn/local<
        /value>
        
      <
        /property>
        
    <
        /configuration>
        
    
  • workers(或 slaves)文件(列出所有 DataNode 主机名)
    slave1
    slave2
    
  • /usr/local/hadoop 目录同步到所有从节点,并修正属主属组:
    rsync -av /usr/local/hadoop slave1:/usr/local/
    rsync -av /usr/local/hadoop slave2:/usr/local/
    ssh slave1 'sudo chown -R hadoop:hadoop /usr/local/hadoop'
    ssh slave2 'sudo chown -R hadoop:hadoop /usr/local/hadoop'
    

以上为核心配置与目录规划,覆盖 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 与 workers 文件。

四 启动与验证

  • 配置 SSH 免密登录(主节点执行,确保能免密登录 master/slave1/slave2
    ssh-keygen -t rsa -P ''
    ssh-copy-id master
    ssh-copy-id slave1
    ssh-copy-id slave2
    
  • 格式化 NameNode(仅首次执行)
    hdfs namenode -format
    
  • 启动集群
    start-dfs.sh
    start-yarn.sh
    
  • 验证进程(各节点执行)
    jps
    # master 应看到:NameNode、ResourceManager
    # slave 应看到:DataNode、NodeManager
    
  • 查看 HDFS 状态与 Web 界面
    hdfs dfsadmin -report
    # NameNode Web UI:http://master:50070
    # ResourceManager Web UI:http://master:8088
    

以上步骤完成集群启动与可用性验证,包含 SSH 免密、NameNode 格式化、启动脚本与 Web UI 检查

五 常见问题与优化建议

  • 无法免密登录:检查 ~/.ssh/authorized_keys 权限为 600,目录 ~/.ssh 权限为 700;确认 /etc/hosts 与 DNS 解析一致。
  • 端口被防火墙拦截:生产环境不建议直接关闭防火墙,按需放行 HDFS(50070/50075/50090)YARN(8088/8042) 等端口。
  • 数据目录权限:确保 $HADOOP_HOME/hdfs$HADOOP_HOME/yarn 目录属主为 hadoop:hadoop,否则进程无法写入。
  • 副本数设置:测试环境可将 dfs.replication 设为 12,生产环境建议 3
  • 资源不足:为 ResourceManager/NodeManager 分配合理内存(如 yarn.nodemanager.resource.memory-mbyarn.scheduler.maximum-allocation-mb),避免 OOM。
  • 版本选择:Hadoop 3.3.xJDK 8 组合稳定;如需 JDK 11,请确认所用 Hadoop 版本已声明支持。

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


若转载请注明出处: CentOS下Hadoop集群搭建
本文地址: https://pptw.com/jishu/756474.html
CentOS运行Hadoop有何优势 CentOS如何优化Hadoop性能

游客 回复需填写必要信息