Hadoop集群搭建是后续学习Hadoop、Hive、Spark等大数据组件的基础,为了可以动手实操,加深对知识的理解,我们必须在电脑上搭建起一套Hadoop集群。
Hadoop集群模式
Hadoop集群部署有如下三种模式
- 本地(Local)模式
- 在本地模式下,Hadoop并不实际运行在一个真正的分布式集群上,而是将所有的计算任务都在单台计算机上执行。这种模式主要用于开发、测试和调试Hadoop程序,因为它不需要配置大规模的集群环境。
- 伪分布式(Pseudo-Distributed)模式
- 在伪分布式模式下,Hadoop集群运行在单个物理计算机上,但每个Hadoop组件(如HDFS、YARN、MapReduce)都在不同的进程中运行。这样,我们可以模拟一个真实的分布式环境,进行开发和测试。通常用于学习和小规模数据集的处理。
- 完全分布式(Fully-Distributed)模式
- 完全分布式模式是Hadoop的真正分布式集群部署方式。在这种模式下,Hadoop集群由多台物理计算机组成,每台计算机运行一个或多个Hadoop组件,形成一个大规模的分布式环境。通常用于处理大规模数据集,实现高可用性和负载均衡。
Hadoop集群的关键组件
- HDFS(Hadoop Distributed File System):用于存储大规模数据的分布式文件系统,将数据切分成块并分布在不同的节点上。
- YARN(Yet Another Resource Negotiator):资源管理器,负责分配集群中的计算资源给不同的任务。
- MapReduce:分布式计算框架,用于处理大规模数据的计算任务。
- Hadoop伪分布式集群部署
由于机器的性能问题,我们仅搭建伪分布式集群用来日常学习。
- 查看Java环境是否正常

我这里安装的java1.8版本,注意java安装的目录不要有空格
2. *载下**Hadoop相关资源
- Hadoop3.1.0版本的安装包:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.0/hadoop-3.1.0.tar.gz
- Windows环境安装所需的bin文件包(我们这里选择3.1.0):
- https://gitee.com/nkuhyx/winutils,里面选3.1.0版本
3. 解压安装包并替换bin文件

将压缩包解压后,把apache-hadoop-3.1.0-winutils-master目录下的bin文件拷贝到hadoop-3.1.0目录下。
4. 配置Hadoop环境变量
配置系统变量HADOOP_HOME

修改path:
新建环境变量%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin

5. 查看环境变量是否配置成功

6. 配置Hadoop配置文件
6.1 配置core-site.xml
core-site.xml:集群全局参数。用于定义系统级别的参数,如HDFS、URL、Hadoop的临时目录等
在 D:/APP/Hadoop/hadoop-3.1.0目录下新建data文件夹,在data下新建tmp、namenode、datanode三个空文件夹
<configuration>
<property>
<!--临时文件夹 -->
<name>hadoop.tmp.dir</name>
<value>/D:/APP/Hadoop/hadoop-3.1.0/data/tmp</value>
</property>
<property>
<!--文件系统主机和端口 -->
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
6.2 配置mapred-site.xml
mapred-site.xml:MapReduce参数,包括JobHistory Service和应用程序参数两部分内容,如作业名称、内存和cpu等参数。
<configuration>
<property>
<!--指定执行MapReduce作业的运行时框架 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<!--指定JobTracker机器和端口 -->
<name>mapred.job.tracker</name>
<value>hdfs://localhost:9001</value>
</property>
</configuration>
6.3 配置yarn-site.xml
yarn-site.xml:集群资源管理系统参数。配置ResourceManager、NodeManager的通信端口,web监控端口等。
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hahoop.mapred.ShuffleHandler</value>
</property>
</configuration>
6.4 配置hdfs-site.xml
hdfs-site.xml:HDFS参数。如名字节点和数据节点的存放位置、文件副本的个数、文件读取权限等。
<configuration>
<!-- 这个参数设置为1,因为是单机版hadoop -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/D:/APP/Hadoop/hadoop-3.1.0/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/D:/APP/Hadoop/hadoop-3.1.0/data/datanode</value>
</property>
</configuration>
6.5 配置hadoop-env.cmd
set JAVA_HOME=D:\APP\Java
7.启动Hadoop集群
7.1 格式化namenode
在cmd中进入D:\APP\Hadoop\hadoop-3.1.0\bin目录
输入命令:
hdfs namenode -format

如果没有报错,则说明配置文件没有问题。
7.2 启动hdfs
在cmd中进入D:\APP\Hadoop\hadoop-3.1.0\sbin目录
输入命令:
start-dfs.cmd
此时会弹出两个窗口

7.3 启动yarn
输入命令:
start-yarn.cmd
遇到问题,报错如下:

报错解决:
将D:\APP\Hadoop\hadoop-3.1.0\share\hadoop\yarn\timelineservice\hadoop-yarn-server-timelineservice-3.1.0.jar放到目录D:\APP\Hadoop\hadoop-3.1.0\share\hadoop\yarn\lib下即可。
重新启动yarn,此时会弹出如下两个窗口

7.4 同时启动hdfs和yarn服务
我们可以使用如下命令同时启动两个服务
start-all.cm
7.5 查看Hadoop相关服务进程
jps

如图所示,hadoop相关服务都已经正常运行。
7.6 WebUi访问,观察服务是否正常
访问namenode

访问R esourceManager页面http://localhost:8088/cluster
结果页面无法打开。经排查我的原因是hosts文件存在问题

修改hosts文件后,resourceManage页面可以正常打开

7.7 关闭服务
stop-all.cmd

至此,Windows下的Hadoop集群搭建成功。
欢迎大家关注我的公众号,后续会不断更新大数据相关技术文章。
