【详解】基于3台服务器搭建Hadoop3.x集群

举报
皮牙子抓饭 发表于 2025/02/26 09:43:02 2025/02/26
2.8k+ 0 0
【摘要】 基于3台服务器搭建Hadoop3.x集群概述Hadoop是一个由Apache基金会开发的分布式计算框架,它能够处理大规模数据集。Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。本文将介绍如何在三台服务器上搭建Hadoop 3.x集群。环境准备硬件要求3台服务器,建议配置:CPU: 4核及以上内存: 8GB及以上磁盘: 1...

基于3台服务器搭建Hadoop3.x集群

概述

Hadoop是一个由Apache基金会开发的分布式计算框架,它能够处理大规模数据集。Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。本文将介绍如何在三台服务器上搭建Hadoop 3.x集群。

环境准备

硬件要求

  • 3台服务器,建议配置:
  • CPU: 4核及以上
  • 内存: 8GB及以上
  • 磁盘: 100GB及以上

软件要求

  • 操作系统: CentOS 7.x
  • Java: JDK 1.8+
  • Hadoop: 3.x

服务器配置

服务器

IP地址

角色

Node1

192.168.1.1

NameNode, ResourceManager

Node2

192.168.1.2

DataNode, NodeManager

Node3

192.168.1.3

DataNode, NodeManager

安装步骤

1. 配置主机名和hosts文件

在所有节点上执行以下命令,修改主机名:

sudo hostnamectl set-hostname node1

编辑 ​​/etc/hosts​​ 文件,添加以下内容:

192.168.1.1 node1
192.168.1.2 node2
192.168.1.3 node3

2. 安装Java

在所有节点上安装JDK:

sudo yum install -y java-1.8.0-openjdk

验证Java安装:

java -version

3. 下载并解压Hadoop

在Node1上下载Hadoop 3.x:

wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -xzvf hadoop-3.3.1.tar.gz -C /opt/
cd /opt/
sudo ln -s hadoop-3.3.1 hadoop

将Hadoop目录复制到其他节点:

scp -r /opt/hadoop node2:/opt/
scp -r /opt/hadoop node3:/opt/

4. 配置Hadoop环境变量

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

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使环境变量生效:

source ~/.bashrc

5. 配置Hadoop

5.1 修改 ​​core-site.xml​

编辑 ​​/opt/hadoop/etc/hadoop/core-site.xml​​ 文件,添加以下内容:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/app/hadoop/tmp</value>
    </property>
</configuration>
5.2 修改 ​​hdfs-site.xml​

编辑 ​​/opt/hadoop/etc/hadoop/hdfs-site.xml​​ 文件,添加以下内容:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>node1:9870</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node1:9868</value>
    </property>
</configuration>
5.3 修改 ​​yarn-site.xml​

编辑 ​​/opt/hadoop/etc/hadoop/yarn-site.xml​​ 文件,添加以下内容:

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
    </property>
</configuration>
5.4 修改 ​​mapred-site.xml​

编辑 ​​/opt/hadoop/etc/hadoop/mapred-site.xml​​ 文件,添加以下内容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
5.5 配置 ​​slaves​​ 文件

编辑 ​​/opt/hadoop/etc/hadoop/slaves​​ 文件,添加以下内容:

node2
node3

6. 格式化HDFS

在Node1上执行以下命令格式化HDFS:

hdfs namenode -format

7. 启动Hadoop集群

在Node1上启动HDFS和YARN:

start-dfs.sh
start-yarn.sh

8. 验证集群状态

访问HDFS Web界面:

http://node1:9870

访问YARN Web界面:

http://node1:8088

9. 测试Hadoop

在Node1上创建一个测试目录,并上传文件:

hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/test
hdfs dfs -put /path/to/local/file /user/test/

运行一个简单的MapReduce作业:

hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /user/test/input /user/test/output

查看输出结果:

hdfs dfs -cat /user/test/output/part-r-00000

通过以上步骤,我们成功地在三台服务器上搭建了一个Hadoop 3.x集群。这个集群可以用于处理大规模数据集,并支持分布式计算任务。希望本文对您有所帮助!

在实际应用中,搭建一个Hadoop 3.x集群通常涉及到配置多个节点(包括NameNode、DataNode、Secondary NameNode等)。以下是一个基于三台服务器的Hadoop 3.x集群的搭建步骤和示例配置文件。

前提条件

  1. 三台服务器:假设它们的IP地址分别为 ​​192.168.1.101​​ (NameNode), ​​192.168.1.102​​ (DataNode 1), 和 ​​192.168.1.103​​ (DataNode 2)。
  2. 操作系统:Linux(例如Ubuntu 20.04)。
  3. Java环境:确保每台服务器上都安装了Java 8或更高版本。

步骤

1. 安装Java

在所有服务器上安装Java:

sudo apt update
sudo apt install openjdk-8-jdk -y
2. 下载并解压Hadoop

在所有服务器上下载并解压Hadoop 3.x:

wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -xzvf hadoop-3.3.1.tar.gz
sudo mv hadoop-3.3.1 /usr/local/
3. 配置环境变量

编辑 ​​/etc/profile​​ 文件,添加Hadoop环境变量:

export HADOOP_HOME=/usr/local/hadoop-3.3.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使配置生效:

source /etc/profile
4. 配置Hadoop

编辑Hadoop配置文件,主要需要修改的文件有 ​​core-site.xml​​, ​​hdfs-site.xml​​, ​​yarn-site.xml​​, 和 ​​mapred-site.xml​​。

core-site.xml

在所有节点上编辑 ​​/usr/local/hadoop-3.3.1/etc/hadoop/core-site.xml​​:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.1.101:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/app/hadoop/tmp</value>
    </property>
</configuration>
hdfs-site.xml

在所有节点上编辑 ​​/usr/local/hadoop-3.3.1/etc/hadoop/hdfs-site.xml​​:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>192.168.1.101:9870</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.1.101:9868</value>
    </property>
</configuration>
yarn-site.xml

在所有节点上编辑 ​​/usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml​​:

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.1.101</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
mapred-site.xml

在所有节点上编辑 ​​/usr/local/hadoop-3.3.1/etc/hadoop/mapred-site.xml​​:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
5. 配置无密码SSH登录

在NameNode上生成SSH密钥并分发到所有节点:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh-copy-id 192.168.1.102
ssh-copy-id 192.168.1.103
6. 格式化NameNode

在NameNode上执行格式化命令:

hadoop namenode -format
7. 启动Hadoop集群

在NameNode上启动HDFS和YARN:

start-dfs.sh
start-yarn.sh
8. 验证集群状态

在NameNode上验证HDFS和YARN的状态:

jps

你应该能看到以下进程:

  • NameNode
  • DataNode
  • SecondaryNameNode
  • ResourceManager
  • NodeManager
9. 访问Web界面

你可以通过浏览器访问HDFS和YARN的Web界面:

  • HDFS Web界面:​​http://192.168.1.101:9870​
  • YARN Web界面:​​http://192.168.1.101:8088​

根据实际需求,你可能还需要进行更多的配置和优化。希望这些信息对你有所帮助!如果有任何问题,请随时提问。搭建一个基于3台服务器的Hadoop 3.x集群涉及到多个步骤,包括环境准备、配置文件修改、服务启动等。下面是一个详细的指南,帮助你完成这个过程。

环境准备

  1. 服务器准备
  • 至少3台服务器,每台服务器上安装了相同版本的Linux操作系统(如Ubuntu 18.04或CentOS 7)。
  • 每台服务器上安装了Java 8或更高版本。
  1. 网络配置
  • 确保所有服务器之间可以互相通信。
  • 配置主机名和IP地址映射,在每台服务器的​​/etc/hosts​​文件中添加如下内容:
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
  1. SSH无密码登录
  • 在主节点(假设为node1)上生成SSH密钥对,并将公钥复制到所有节点:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

下载和解压Hadoop

  1. 下载Hadoop
  • 在主节点上下载Hadoop 3.x的压缩包:
wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gz
  1. 解压Hadoop
  • 解压到指定目录,例如​​/usr/local/​​:
tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/
  1. 创建软链接
  • 创建一个软链接方便管理:
ln -s /usr/local/hadoop-3.3.1 /usr/local/hadoop
  1. 分发Hadoop
  • 将Hadoop分发到其他节点:
scp -r /usr/local/hadoop node2:/usr/local/
scp -r /usr/local/hadoop node3:/usr/local/

配置Hadoop

  1. 修改环境变量
  • 编辑​​~/.bashrc​​文件,添加Hadoop环境变量:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 使环境变量生效:
source ~/.bashrc
  1. 配置core-site.xml​:
  • 编辑​​$HADOOP_HOME/etc/hadoop/core-site.xml​​文件:
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/app/hadoop/tmp</value>
  </property>
</configuration>
  1. 配置hdfs-site.xml​:
  • 编辑​​$HADOOP_HOME/etc/hadoop/hdfs-site.xml​​文件:
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.namenode.http-address</name>
    <value>node1:9870</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:9868</value>
  </property>
</configuration>
  1. 配置yarn-site.xml​:
  • 编辑​​$HADOOP_HOME/etc/hadoop/yarn-site.xml​​文件:
<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>4096</value>
  </property>
</configuration>
  1. 配置mapred-site.xml​:
  • 编辑​​$HADOOP_HOME/etc/hadoop/mapred-site.xml​​文件:
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>
  1. 配置workers​文件
  • 编辑​​$HADOOP_HOME/etc/hadoop/workers​​文件,添加所有DataNode和NodeManager的主机名:
node1
node2
node3

格式化NameNode

  1. 格式化NameNode
  • 在主节点上执行以下命令:
hdfs namenode -format

启动Hadoop集群

  1. 启动HDFS
  • 在主节点上启动HDFS:
start-dfs.sh
  1. 启动YARN
  • 在主节点上启动YARN:
start-yarn.sh
  1. 验证集群状态
  • 访问NameNode的Web界面,确保所有DataNode都已连接:
http://node1:9870
  • 访问ResourceManager的Web界面,确保所有NodeManager都已连接:
http://node1:8088

测试Hadoop集群

  1. 上传测试文件
  • 创建一个测试文件并上传到HDFS:
echo "This is a test file." > test.txt
hdfs dfs -put test.txt /user/yourusername/
  1. 运行MapReduce作业
  • 运行一个简单的WordCount作业:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /user/yourusername/test.txt /user/yourusername/output
  1. 查看输出结果
  • 查看WordCount作业的输出结果:
hdfs dfs -cat /user/yourusername/output/part-r-00000

通过以上步骤,你应该能够成功地在3台服务器上搭建一个Hadoop 3.x集群,并运行基本的Hadoop作业。如果有任何问题,请检查日志文件以获取更多信息。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。