温馨提示×

Linux中Hadoop集群搭建步骤是什么

小樊
42
2025-11-06 20:57:49
栏目: 智能运维

Linux环境下Hadoop集群搭建步骤

1. 前置准备

  • 系统要求:选择稳定的Linux发行版(如CentOS 7/RHEL 7、Ubuntu 20.04及以上),建议使用普通用户(如hadoop)操作,避免root权限滥用。
  • 节点规划:至少准备3台机器(1台Master节点:运行NameNode、ResourceManager;2台Worker节点:运行DataNode、NodeManager),确保所有节点在同一局域网内且能互相通信。
  • 硬件要求:Master节点建议4GB+内存、20GB+硬盘;Worker节点建议2GB+内存、20GB+硬盘(可根据数据量调整)。

2. 安装Java环境

Hadoop依赖Java运行环境,需在所有节点安装JDK(推荐OpenJDK 8/11):

# CentOS系统(以OpenJDK 8为例)
sudo yum install -y java-1.8.0-openjdk-devel

# Ubuntu系统(以OpenJDK 11为例)
sudo apt update
sudo apt install -y openjdk-11-jdk

# 验证安装
java -version  # 应输出Java版本信息

配置JAVA_HOME环境变量(编辑~/.bashrc/etc/profile):

echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> ~/.bashrc  # CentOS路径
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
source ~/.bashrc  # 使配置生效

3. 下载并解压Hadoop

从Apache官网下载稳定版本的Hadoop(如3.4.1),解压到指定目录(如/usr/local):

# 下载Hadoop(以3.4.1为例)
wget https://downloads.apache.org/hadoop/common/hadoop-3.4.1/hadoop-3.4.1.tar.gz

# 解压并移动到目标目录
tar -zxvf hadoop-3.4.1.tar.gz
sudo mv hadoop-3.4.1 /usr/local/hadoop

# 修改目录权限(避免权限问题)
sudo chown -R hadoop:hadoop /usr/local/hadoop

4. 配置环境变量

编辑用户目录下的~/.bashrc文件,添加Hadoop相关环境变量:

echo 'export HADOOP_HOME=/usr/local/hadoop' >> ~/.bashrc
echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc  # 使配置生效

5. 配置SSH免密登录

Hadoop集群节点间需通过SSH免密通信,步骤如下:

  • 生成密钥对(在Master节点执行):
    ssh-keygen -t rsa -P ""  # 按回车键生成默认路径的密钥对
    
  • 分发公钥到所有节点(包括Master自身):
    ssh-copy-id hadoop@master  # Master节点
    ssh-copy-id hadoop@worker1  # Worker1节点
    ssh-copy-id hadoop@worker2  # Worker2节点
    
  • 验证免密登录
    ssh hadoop@master  # 无需输入密码即可登录
    ssh hadoop@worker1
    ssh hadoop@worker2
    

6. 配置Hadoop核心文件

进入Hadoop配置目录($HADOOP_HOME/etc/hadoop),修改以下关键文件:

6.1 core-site.xml

配置HDFS的默认文件系统地址(指向NameNode):

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>  <!-- 替换为Master节点的主机名/IP -->
    </property>
</configuration>
6.2 hdfs-site.xml

配置HDFS的副本数(生产环境建议3副本,测试环境可设为1)及NameNode/DataNode的数据存储路径:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>  <!-- 副本数,根据节点数量调整 -->
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/data/namenode</value>  <!-- NameNode元数据存储路径 -->
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/data/datanode</value>  <!-- DataNode数据存储路径 -->
    </property>
</configuration>
6.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>
6.4 yarn-site.xml

配置YARN的资源管理器(ResourceManager)及Shuffle服务:

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>  <!-- 替换为ResourceManager节点的主机名/IP -->
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

7. 格式化NameNode

NameNode是HDFS的核心组件,首次启动前需格式化(仅执行一次,会清空HDFS数据):

hdfs namenode -format

格式化后,会在配置的dfs.namenode.name.dir路径下生成元数据文件。

8. 启动Hadoop集群

  • 启动HDFS
    start-dfs.sh  # 启动NameNode、DataNode等服务
    
  • 启动YARN
    start-yarn.sh  # 启动ResourceManager、NodeManager等服务
    

验证服务是否启动

jps  # 查看Java进程,应包含NameNode、DataNode、ResourceManager、NodeManager等

若进程未启动,可查看日志文件($HADOOP_HOME/logs)排查问题。

9. 验证集群状态

  • 查看HDFS节点信息
    hdfs dfsadmin -report  # 显示DataNode列表、存储容量等信息
    
  • 访问Web界面
    • HDFS Web UI:http://master:9870(默认端口,Hadoop 3.x版本)
    • YARN ResourceManager Web UI:http://master:8088
      输入Master节点的IP或主机名,即可通过浏览器查看集群状态。

以上步骤完成后,一个基本的Hadoop集群即可正常运行。生产环境中还需进行优化(如调整JVM参数、配置高可用HA、增加数据节点等)。

0