【大数据】Hadoop三节点集群搭建

一、前置准备

1.1 系统要求

  • 操作系统:建议使用 CentOS 7/RHEL 7 或 Ubuntu 20.04。
  • Java:Hadoop 推荐 Java 8,但也支持 Java 11。
  • 内存
    • Master 节点:4 GB(建议)
    • Worker 节点:2 GB(建议)
  • 硬盘:每个节点至少 20 GB

1.2 下载 Hadoop

访问 Hadoop 官方下载页面 下载最新的稳定版(例如 Hadoop 3.4.1)。

或者直接使用命令下载二进制包(以 Hadoop 3.4.1 为例):

1.3 节点角色

假设你有三台机器(或虚拟机):

  • master:运行 NameNode 和 ResourceManager。
  • worker1worker2:运行 DataNode 和 NodeManager。

1.4 下载 Hadoop 3.4.1

在所有节点下载并解压 Hadoop 二进制包:

bash 复制代码
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

1.5 注意

Hadoop 不允许以 root 用户直接操作,创建一个普通用户(如 hadoop)并赋予权限。


二、配置集群环境

2.1 配置主机名和通信

在所有节点上编辑 /etc/hosts 文件,添加以下内容:

text 复制代码
<master_IP> hadoop001
<worker1_IP> hadoop002
<worker2_IP> hadoop003

在每台机器上设置主机名:

bash 复制代码
hostnamectl set-hostname hadoop001     # 在主节点
hostnamectl set-hostname hadoop002    # 在worker1节点
hostnamectl set-hostname hadoop003    # 在worker2节点

2.2 配置 SSH 免密登录

在主节点 master 上生成 SSH 密钥:

bash 复制代码
ssh-keygen -t rsa -P ""

将密钥分发到所有节点(包括自己):

bash 复制代码
ssh-copy-id hadoop001
ssh-copy-id hadoop002
ssh-copy-id hadoop003

验证免密登录:

bash 复制代码
ssh hadoop001
ssh hadoop002
ssh hadoop003

三、配置 Hadoop

在所有节点上配置 Hadoop(/usr/local/hadoop)。以下配置以 master 节点为主,完成后将同步到其他节点。

3.1 配置环境变量

编辑 ~/.bashrc 文件,添加以下内容:

bash 复制代码
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

加载环境变量:

bash 复制代码
source ~/.bashrc

!NOTE

找到 Java 的安装路径

运行以下命令查找 Java 的安装路径:

bash 复制代码
readlink -f $(which java)

输出类似:

bash 复制代码
/usr/lib/jvm/java-1.8.0-openjdk/jre/bin/java

去掉 /bin/java 部分,得到 Java 的根目录。例如:

bash 复制代码
/usr/lib/jvm/java-1.8.0-openjdk

3.2 配置 hadoop-env.sh

编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.sh

bash 复制代码
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

3.3 配置 core-site.xml

编辑 $HADOOP_HOME/etc/hadoop/core-site.xml

xml 复制代码
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

3.4 配置 hdfs-site.xml

编辑 $HADOOP_HOME/etc/hadoop/hdfs-site.xml

xml 复制代码
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value> <!-- 数据副本数 -->
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop_data/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop_data/hdfs/datanode</value>
    </property>
</configuration>

在所有节点上创建数据目录:

bash 复制代码
mkdir -p /usr/local/hadoop_data/hdfs/namenode
mkdir -p /usr/local/hadoop_data/hdfs/datanode

3.5 配置 mapred-site.xml

复制模板文件:

bash 复制代码
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

编辑 $HADOOP_HOME/etc/hadoop/mapred-site.xml

xml 复制代码
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

3.6 配置 yarn-site.xml

编辑 $HADOOP_HOME/etc/hadoop/yarn-site.xml

xml 复制代码
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

3.7 配置 slaves 文件

编辑 $HADOOP_HOME/etc/hadoop/slaves,指定所有 Worker 节点的主机名:

text 复制代码
worker1
worker2

四、启动 Hadoop 集群

4.1 格式化 HDFS

在主节点(master)上运行以下命令:

bash 复制代码
hdfs namenode -format

4.2 启动 HDFS 和 YARN

在主节点启动集群:

启动 HDFS:
bash 复制代码
start-dfs.sh
启动 YARN:
bash 复制代码
start-yarn.sh
验证:

在所有节点运行:

bash 复制代码
jps
  • master 节点应该看到:
    • NameNode
    • ResourceManager
  • worker1worker2 节点应该看到:
    • DataNode
    • NodeManager

五、验证 Hadoop 集群

5.1 验证 HDFS

运行以下命令验证 HDFS 是否工作:

bash 复制代码
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/<your-username>
hdfs dfs -ls /

5.2 上传文件到 HDFS

bash 复制代码
echo "Hello Hadoop" > hello.txt
hdfs dfs -put hello.txt /user/<your-username>
hdfs dfs -ls /user/<your-username>

5.3 访问 Web 界面

  • HDFS NameNode:http://master:9870
  • YARN ResourceManager:http://master:8088

六、停止 Hadoop 集群

停止 HDFS 和 YARN 服务:

bash 复制代码
stop-dfs.sh
stop-yarn.sh

七、注意事项

  1. 确保所有节点时间同步

    安装 ntp 服务,确保集群中时间一致:

    bash 复制代码
    sudo yum install -y ntp
    sudo systemctl start ntpd
    sudo systemctl enable ntpd
  2. 检查防火墙

    如果启用了防火墙,确保开放以下端口:

    • HDFS:9000、9870
    • YARN:8088
  3. 多节点通信

    确保 masterworker 节点之间能够通过主机名通信。

相关推荐
小五传输26 分钟前
常用的文件摆渡系统:让数据安全高效跨越网络界限
大数据·运维·安全
数据科学小丫3 小时前
数据分析与FineBI介绍
大数据·数据分析·finebi
ALex_zry3 小时前
Git大型仓库推送失败问题完整解决方案
大数据·git·elasticsearch
二进制coder4 小时前
Git Fork 开发全流程教程
大数据·git·elasticsearch
天硕国产存储技术站8 小时前
DualPLP 双重掉电保护赋能 天硕工业级SSD筑牢关键领域安全存储方案
大数据·人工智能·安全·固态硬盘
雷文成.思泉软件8 小时前
以ERP为核心、企微为门户,实现一体化集成
大数据·低代码·创业创新
SuperHeroWu79 小时前
【HarmonyOS 6】UIAbility跨设备连接详解(分布式软总线运用)
分布式·华为·harmonyos·鸿蒙·连接·分布式协同·跨设备链接
杜子不疼.9 小时前
【探索实战】从0到1打造分布式云原生平台:Kurator全栈实践指南
分布式·云原生
东哥说-MES|从入门到精通10 小时前
数字化部分内容 | 十四五年规划和2035年远景目标纲要(新华社正式版)
大数据·人工智能·数字化转型·mes·数字化工厂·2035·十四五规划
南飞测绘视界11 小时前
上市公司绿色专利申请、授权数据(1999-2024年)
大数据·专利·上市公司