Hadoop➖Windows系统下Hadoop单机环境搭建教程

Hadoop------Windows系统下Hadoop单机环境搭建教程

关于作者

  • 作者介绍

🍓 博客主页:作者主页

🍓 简介:JAVA领域优质创作者🥇、一名初入职场小白🎓、曾在校期间参加各种省赛、国赛,斩获一系列荣誉 🏆

🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨‍💻


Hadoop初识

Hadoop是一个开源的分布式计算框架,它的目标是处理大规模数据集的存储和处理问题。它的核心组件包括:

  1. Hadoop分布式文件系统(HDFS):HDFS可以把大量数据分散存储在集群的多个计算机上,提供高可靠性和容错性。

  2. MapReduce:MapReduce是Hadoop的计算方式,用于并行处理大规模数据。它将任务分为两个阶段:Map阶段和Reduce阶段。Map阶段将数据分割成小块并进行处理,Reduce阶段将Map阶段的结果合并和汇总。

  3. YARN(Yet Another Resource Negotiator):YARN是Hadoop的资源管理器,负责集群资源的调度和管理。它允许多个应用程序在同一个Hadoop集群上同时运行,提高资源利用率。

Hadoop的优势在于它的可扩展性、容错性和成本效益。它可以处理大量数据,通过分布式存储和计算,提供高性能和可靠性。此外,Hadoop还有很多与之集成的工具和框架,如Hive(用于数据仓库)、Pig(用于数据分析)、Spark(用于内存计算),进一步丰富了大数据处理的能力。


本文将在本地Windows系统进行Hadoop搭建。

我使用的版本:hadoop-3.0.0。其他版本搭建流程也可参考本篇文章。

1、下载安装包和windows插件

安装包:hadoop-3.0.0.tar.gz

插件: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管理界面

相关推荐
szxinmai主板定制专家2 分钟前
基于ARM+FPGA的高端伺服驱动与运动控制解决方案
大数据·arm开发·人工智能·fpga开发·架构
XSKY星辰天合4 小时前
DeepSeek 3FS:端到端无缓存的存储新范式
大数据
郑州拽牛科技5 小时前
开发社交陪玩app小程序
大数据·微信小程序·小程序·系统架构·开源软件
哲讯智能科技9 小时前
SAP环保-装备制造领域创新解决方案
大数据
钡铼技术物联网关9 小时前
Ubuntu工控卫士在制造企业中的应用案例
大数据·人工智能·物联网·边缘计算
闯闯桑10 小时前
scala 中的@BeanProperty
大数据·开发语言·scala
闯闯桑10 小时前
Scala 中的隐式转换
大数据·scala
用户Taobaoapi201412 小时前
淘宝商品列表查询 API 接口详解
大数据
涛思数据(TDengine)13 小时前
taosd 写入与查询场景下压缩解压及加密解密的 CPU 占用分析
大数据·数据库·时序数据库·tdengine
DuDuTalk13 小时前
DuDuTalk接入DeepSeek,重构企业沟通数字化新范式
大数据·人工智能