温馨提示×

Linux环境下Hadoop集群怎样搭建

小樊
43
2025-11-02 16:07:20
栏目: 智能运维

一、环境准备

  1. 硬件要求:每台节点(Master/Slave)需满足双核CPU、8GB以上内存、100GB以上硬盘空间(可根据数据量调整,建议NameNode使用64位硬件以避免32位内存限制)。
  2. 操作系统:推荐使用CentOS 7、Ubuntu 24.2等稳定Linux发行版(需支持Java和SSH服务)。
  3. 网络配置:所有节点需处于同一局域网,配置静态IP地址,并修改/etc/hosts文件实现主机名与IP映射(如192.168.1.10 master192.168.1.11 slave1),确保节点间可通过主机名互相通信。
  4. 软件依赖:需提前安装Java(推荐JDK 1.8+,如sudo yum install -y java-1.8.0-openjdk-develsudo apt install -y openjdk-11-jdk)和SSH服务(默认安装,可通过ssh localhost验证连通性)。

二、安装Hadoop

  1. 下载与解压:从Apache官网下载最新稳定版Hadoop(如3.3.5),使用wget命令下载后解压至指定目录(如/usr/local):
    wget https://downloads.apache.org/hadoop/core/hadoop-3.3.5/hadoop-3.3.5.tar.gz
    sudo tar -zxvf hadoop-3.3.5.tar.gz -C /usr/local/
    sudo chown -R hadoop:hadoop /usr/local/hadoop-3.3.5  # 修改属主为hadoop用户(可选但推荐)
    ```。  
    
  2. 配置环境变量:编辑~/.bashrc(或/etc/profile)文件,添加以下内容以全局使用Hadoop命令:
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  # 根据实际Java路径调整
    export HADOOP_HOME=/usr/local/hadoop-3.3.5
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    保存后执行source ~/.bashrc使配置生效。

三、配置SSH免密登录

  1. 生成密钥对:在Master节点上执行ssh-keygen -t rsa,按提示连续回车(不设置密码),生成~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。
  2. 分发公钥:将Master节点的公钥复制到所有Slave节点,实现免密登录:
    ssh-copy-id hadoop@slave1  # 替换为Slave节点的主机名/IP
    ssh-copy-id hadoop@slave2
    
    执行后输入Slave节点的hadoop用户密码,完成后测试免密登录(如ssh slave1应无需密码)。

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

  1. core-site.xml:配置HDFS的默认文件系统地址(指向NameNode):
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>  <!-- 替换为Master节点的主机名 -->
        </property>
    </configuration>
    ```。  
    
  2. hdfs-site.xml:配置HDFS副本数(生产环境建议3,测试环境可设为1)和NameNode/DataNode数据存储路径:
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/usr/local/hadoop-3.3.5/data/namenode</value>  <!-- NameNode元数据存储路径 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/usr/local/hadoop-3.3.5/data/datanode</value>  <!-- DataNode数据存储路径 -->
        </property>
    </configuration>
    ```。  
    
  3. mapred-site.xml:指定MapReduce框架为YARN(需提前创建mapred-site.xml,可通过cp mapred-site.xml.template mapred-site.xml生成):
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    ```。  
    
  4. yarn-site.xml:配置YARN资源管理器(ResourceManager)地址和Shuffle服务:
    <configuration>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>  <!-- 替换为Master节点的主机名 -->
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    </configuration>
    ```。  
    
    

五、启动Hadoop集群

  1. 格式化NameNode:仅在首次安装时执行,用于初始化HDFS元数据(注意:格式化会清除原有数据):
    hdfs namenode -format
    ```。  
    
  2. 启动HDFS:执行start-dfs.sh命令启动NameNode和DataNode服务,启动后可通过jps命令查看NameNode、DataNode进程是否运行:
    $HADOOP_HOME/sbin/start-dfs.sh
    jps  # 应显示NameNode、DataNode进程
    ```。  
    
  3. 启动YARN:执行start-yarn.sh命令启动ResourceManager和NodeManager服务,同样通过jps查看进程:
    $HADOOP_HOME/sbin/start-yarn.sh
    jps  # 应显示ResourceManager、NodeManager进程
    ```。  
    
    

六、验证集群状态

  1. 查看HDFS状态:使用hdfs dfsadmin -report命令查看DataNode列表、存储容量等信息,确认DataNode已成功连接。
  2. 查看YARN状态:使用yarn node -list命令查看NodeManager列表,确认YARN集群正常运行。
  3. 访问Web界面:打开浏览器访问HDFS Web界面(http://master:50070)和YARN Web界面(http://master:8088),查看集群状态和资源使用情况(部分版本可能需替换为http://master:9870,具体以实际版本为准)。

0