温馨提示×

Hadoop集群在Linux上如何配置

小樊
45
2025-11-10 23:57:06
栏目: 智能运维

Hadoop集群在Linux上的配置步骤

1. 环境准备

  • 硬件要求:确保所有节点(Master/NameNode、Slave/DataNode)满足最低配置(如双核CPU、8GB内存、100GB硬盘),并具备稳定网络连接。
  • 操作系统:推荐使用CentOS 7、Ubuntu Server 20.04 LTS等稳定Linux发行版(需root或sudo权限)。

2. 安装Java环境(JDK 1.8+)

Hadoop基于Java开发,需先安装JDK。以CentOS为例:

sudo yum install -y java-1.8.0-openjdk-devel  # 安装OpenJDK 8
java -version  # 验证安装(需显示Java版本信息)

将Java路径添加到环境变量(所有节点):

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

3. 下载并解压Hadoop

从Apache官网下载稳定版本(如3.3.5),解压到指定目录(如/opt/hadoop):

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz  # 下载
tar -xzvf hadoop-3.3.5.tar.gz -C /opt/  # 解压
sudo mv /opt/hadoop-3.3.5 /opt/hadoop  # 重命名目录

设置目录权限(避免权限问题):

sudo chown -R root:root /opt/hadoop  # 根据实际用户调整

4. 配置环境变量(所有节点)

编辑~/.bashrc(或/etc/profile),添加Hadoop环境变量:

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

验证Hadoop命令:

hadoop version  # 应显示Hadoop版本信息

5. 配置Hadoop核心文件(Master节点)

Hadoop配置文件位于$HADOOP_HOME/etc/hadoop目录,需修改以下核心文件:

5.1 core-site.xml(HDFS默认文件系统)
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>  <!-- Master节点主机名,端口9000 -->
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/tmp</value>  <!-- 临时目录(需提前创建) -->
    </property>
</configuration>
5.2 hdfs-site.xml(HDFS副本与NameNode配置)
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>  <!-- 数据副本数(集群节点≥3时设为3,否则设为节点数) -->
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/hdfs/namenode</value>  <!-- NameNode元数据存储路径 -->
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/hdfs/datanode</value>  <!-- DataNode数据存储路径 -->
    </property>
</configuration>
5.3 mapred-site.xml(MapReduce框架配置)

需先将mapred-site.xml.template重命名为mapred-site.xml

mv $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

编辑内容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>  <!-- 使用YARN作为资源管理器 -->
    </property>
</configuration>
5.4 yarn-site.xml(YARN资源管理器配置)
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>resourcemanager</value>  <!-- ResourceManager节点主机名 -->
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>  <!-- 必须配置,支持MapReduce shuffle -->
    </property>
</configuration>
5.5 slaves(Worker节点列表,可选)

若使用start-dfs.sh/start-yarn.sh自动启动DataNode/NodeManager,需在$HADOOP_HOME/etc/hadoop/slaves中列出所有Slave节点主机名(每行一个):

slave1
slave2

或使用workers文件(部分版本支持)。

6. 配置SSH免密登录(Master节点)

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

  • 生成密钥对(Master节点):
    ssh-keygen -t rsa  # 按回车键默认生成(路径~/.ssh/id_rsa)
    
  • 分发公钥到所有Slave节点
    ssh-copy-id slave1  # 输入Slave节点密码,完成公钥复制
    ssh-copy-id slave2
    
  • 验证免密登录
    ssh slave1  # 无需密码即可登录
    ssh slave2
    

7. 格式化HDFS(Master节点)

首次启动前需格式化NameNode(仅执行一次,会清除HDFS所有数据):

hdfs namenode -format  # 输入命令后等待格式化完成(显示"Successfully formatted")

8. 启动Hadoop集群(Master节点)

  • 启动HDFS
    $HADOOP_HOME/sbin/start-dfs.sh  # 启动NameNode、DataNode
    
  • 启动YARN
    $HADOOP_HOME/sbin/start-yarn.sh  # 启动ResourceManager、NodeManager
    
  • 验证进程
    jps  # Master节点应显示NameNode、ResourceManager;Slave节点应显示DataNode、NodeManager
    

9. 验证集群状态

  • Web界面
    • HDFS Web UI:http://namenode:9870(查看HDFS状态、节点列表)
    • YARN Web UI:http://resourcemanager:8088(查看资源分配、任务运行情况)
  • 命令行工具
    hdfs dfsadmin -report  # 查看HDFS集群报告(节点状态、存储容量)
    yarn node -list  # 查看YARN集群节点列表
    

注意事项

  • 防火墙:确保所有节点防火墙关闭(或开放相关端口,如9000、50070、8088),避免通信阻塞。
  • 主机名解析:建议在/etc/hosts中配置节点主机名与IP映射(如192.168.1.100 namenode),避免DNS问题。
  • 数据备份:格式化前务必备份HDFS中的重要数据,格式化会清除所有元数据和数据块。

0