Hadoop------Windows系统下Hadoop单机环境搭建教程
关于作者
- 作者介绍
🍓 博客主页:作者主页
🍓 简介:JAVA领域优质创作者🥇、一名初入职场小白🎓、曾在校期间参加各种省赛、国赛,斩获一系列荣誉 🏆
🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨💻
Hadoop初识
Hadoop是一个开源的分布式计算框架,它的目标是处理大规模数据集的存储和处理问题。它的核心组件包括:
-
Hadoop分布式文件系统(HDFS):HDFS可以把大量数据分散存储在集群的多个计算机上,提供高可靠性和容错性。
-
MapReduce:MapReduce是Hadoop的计算方式,用于并行处理大规模数据。它将任务分为两个阶段:Map阶段和Reduce阶段。Map阶段将数据分割成小块并进行处理,Reduce阶段将Map阶段的结果合并和汇总。
-
YARN(Yet Another Resource Negotiator):YARN是Hadoop的资源管理器,负责集群资源的调度和管理。它允许多个应用程序在同一个Hadoop集群上同时运行,提高资源利用率。
Hadoop的优势在于它的可扩展性、容错性和成本效益。它可以处理大量数据,通过分布式存储和计算,提供高性能和可靠性。此外,Hadoop还有很多与之集成的工具和框架,如Hive(用于数据仓库)、Pig(用于数据分析)、Spark(用于内存计算),进一步丰富了大数据处理的能力。
本文将在本地Windows系统进行Hadoop搭建。
我使用的版本:hadoop-3.0.0。其他版本搭建流程也可参考本篇文章。
1、下载安装包和windows插件
插件:winutils
2、解压安装包
必须使用管理员身份运行cmd,使用命令切换到hadoop的安装包目录下,输入:tar zxvf hadoop-3.0.0.tar.gz
,等待解压完成。
==注意:Hadoop安装必须要安装JDK,没有安装JDK的小伙伴🤴👸需要自行安装==
下载针对Windows环境的Hadoop程序winutils工具
这里使用git进行下载 git clone https://gitcode.net/mirrors/steveloughran/winutils.git

同时,将bin下的hadoop.dll文件拷贝至C:\Windows\System32
下一份
3、配置环境变量
设置->系统->关于-> 高级系统设置->环境变量,用户变量和系统变量新建HADOOP_HOME,与JDK配置过程类似,E:\environment\hadoop-3.0.0
是hadoop存放的位置,具体根据自己存放地址进行修改:


系统环境变量 Path
中添加 %HADOOP_HOME%\bin

对hadoop目录下的 etc\hadoop\hadoop-env.cmd
查看 JAVA_HOME
,如下,修改为自己的 JAVA_HOME
位置:

是如图所示的情况就需要修改。

出错了不要慌。。。
shell
hadoop Error: JAVA_HOME is incorrectly set.Please update E:\environment\hadoop-3.0.0\etc\hadoop\hadoop-env.cmd
错误原因:
该目录下的配置文件中的JAVA_HOME目录是: C:\Program Files\Java\jdk1.8.0_241
因为Program Files中间存在空格,所以出现错误,只需要用 PROGRA~1
代替 Program Files
即可解决该问题。
4、测试 hadoop -version

配置成功
5、初始化文件
在hadoop文件下创建tmp、namenode和datanode文件夹,以我的为例:
E:\environment\hadoop-3.0.0\tmp
E:\environment\hadoop-3.0.0\data\dfs\datanode
E:\environment\hadoop-3.0.0\data\dfs\namenode
配置文件做准备

6、修改配置文件
需要修改四个配置文件(etc\hadoop目录下):core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml
core-site.xml
这里端口我使用9000,端口要注意不被占用。可使用其它端口号。
查看端口是否占用命令:netstat -ano |findstr "post_number"
xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/E:/environment/hadoop-3.0.0/tmp</value>
</property>
</configuration>
hdfs-site.xml
xml
<configuration>
<property>
<name>dfs.replication</name>
<!-- value 1,because it is single hadoop -->
<value>1</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>localhost:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<!-- Create the directory before use it -->
<value>/E:/environment/hadoop-3.0.0/data/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!-- Create the directory before use it -->
<value>/E:/environment/hadoop-3.0.0/data/dfs/datanode</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
dfs.permissions 设为false,比如可能后面进行HDFS相关操作,会出现org.apache.hadoop.security.AccessControlException: Permission denied: user=root...
的错误
mapred-site.xml
xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
如果是mapred-site.xml.template则把.template后缀去掉
yarn-site.xml
xml
<configuration>
<!-- Site specific YARN configuration properties -->
<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.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
7、初始化namenode
到bin目录下执行:hdfs namenode -format
(以管理员身份运行)

每次格式化时最好将datanode、namenode和tmp目录下的文件全部删掉,避免出现一些ClusterId之类的问题
8、启动Hadoop
到sbin目录下右键管理员身份运行start-all.cmd,或命令运行:start-all.cmd

出现上面四个子窗口。
9、验证
览器输如查看集群状态

查看namenode管理界面
