温馨提示×

Hadoop在Linux上怎样进行集群搭建

小樊
57
2025-09-27 13:23:58
栏目: 智能运维

一、环境准备

  1. 硬件与系统要求:选择稳定的Linux发行版(如CentOS 7、Ubuntu 24.2),建议至少3台服务器(1台Master节点、2台Slave节点);每台节点需满足双核CPU、8GB以上内存、100GB以上存储空间;确保所有节点在同一局域网内,能通过IP互相访问。
  2. 网络配置:为每台节点配置静态IP地址(如Master节点192.168.1.100、Slave1192.168.1.101、Slave2192.168.1.102);编辑/etc/hosts文件,将IP与主机名映射(如192.168.1.100 master192.168.1.101 slave1),确保节点间可通过主机名通信。
  3. Java环境安装:Hadoop依赖Java 8或11(推荐OpenJDK),在所有节点执行:sudo yum install -y java-1.8.0-openjdk-devel(CentOS)或sudo apt install -y openjdk-11-jdk(Ubuntu);验证安装:java -version,需显示Java版本信息。

二、Hadoop安装与配置

  1. 下载与解压Hadoop:从Apache官网下载稳定版本(如Hadoop 3.3.5),在Master节点解压到指定目录(如/usr/local/hadoop):wget https://downloads.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gztar -xzvf hadoop-3.3.5.tar.gz -C /usr/local/;修改权限:chown -R hadoop:hadoop /usr/local/hadoop(建议使用专用用户hadoop运行)。
  2. 配置环境变量:编辑~/.bashrc(或/etc/profile),添加以下内容:
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  # 根据实际Java路径调整
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    使配置生效:source ~/.bashrc;验证:hadoop version,需显示Hadoop版本信息。
  3. 核心配置文件修改:进入$HADOOP_HOME/etc/hadoop目录,修改以下文件:
    • core-site.xml:配置HDFS的默认文件系统和临时目录:
      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://master:9000</value>  <!-- Master节点的主机名 -->
          </property>
          <property>
              <name>hadoop.tmp.dir</name>
              <value>/usr/local/hadoop/tmp</value>  <!-- 临时目录 -->
          </property>
      </configuration>
      
    • hdfs-site.xml:配置HDFS副本数(生产环境建议3)和数据存储路径:
      <configuration>
          <property>
              <name>dfs.replication</name>
              <value>3</value>  <!-- 副本数 -->
          </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>
      
    • mapred-site.xml(需将mapred-site.xml.template重命名为mapred-site.xml):配置MapReduce运行框架为YARN:
      <configuration>
          <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
          </property>
      </configuration>
      
    • yarn-site.xml:配置YARN资源管理器和shuffle服务:
      <configuration>
          <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>master</value>  <!-- ResourceManager节点的主机名 -->
          </property>
          <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
          </property>
      </configuration>
      
    将配置文件同步到所有Slave节点:scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slave1:$HADOOP_HOME/etc/hadoop/scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slave2:$HADOOP_HOME/etc/hadoop/
  4. SSH免密登录配置:在Master节点生成SSH密钥:ssh-keygen -t rsa(直接按回车键,默认路径);将公钥复制到所有Slave节点:ssh-copy-id hadoop@slave1ssh-copy-id hadoop@slave2;测试免密登录:ssh slave1ssh slave2,无需输入密码即可登录。

三、启动集群

  1. 格式化HDFS:仅在Master节点执行一次(会清空HDFS数据):hdfs namenode -format;此命令会创建NameNode的元数据目录。
  2. 启动HDFS:在Master节点执行:start-dfs.sh;启动后,NameNode(NameNode进程)、DataNode(DataNode进程)会在Master和Slave节点上自动启动。
  3. 启动YARN:在Master节点执行:start-yarn.sh;ResourceManager(ResourceManager进程)会在Master节点启动,NodeManager(NodeManager进程)会在所有Slave节点启动。

四、验证集群

  1. 查看进程:在任意节点执行jps,Master节点应显示NameNodeResourceManager,Slave节点应显示DataNodeNodeManager
  2. 查看HDFS状态:执行hdfs dfsadmin -report,查看DataNode列表和存储容量。
  3. 查看YARN状态:执行yarn node -list,查看NodeManager列表和资源使用情况。
  4. 访问Web界面:在浏览器中输入http://master:9870(HDFS Web界面),http://master:8088(YARN Web界面),查看集群运行状态。

0