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

相关推荐
Tianyanxiao1 小时前
华为×小鹏战略合作:破局智能驾驶深水区的商业逻辑深度解析
大数据·人工智能·经验分享·华为·金融·数据分析
线条13 小时前
大数据 ETL 工具 Sqoop 深度解析与实战指南
大数据·sqoop·etl
mazhafener12310 小时前
智慧照明:集中控制器、单双灯控制器与智慧灯杆网关的高效协同
大数据
打码人的日常分享10 小时前
物联网智慧医院建设方案(PPT)
大数据·物联网·架构·流程图·智慧城市·制造
Lansonli12 小时前
大数据Spark(六十一):Spark基于Standalone提交任务流程
大数据·分布式·spark
Rverdoser13 小时前
电脑硬盘分几个区好
大数据
傻啦嘿哟13 小时前
Python 数据分析与可视化实战:从数据清洗到图表呈现
大数据·数据库·人工智能
Theodore_102213 小时前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
簌簌曌14 小时前
CentOS7 + JDK8 虚拟机安装与 Hadoop + Spark 集群搭建实践
大数据·hadoop·spark
Theodore_102216 小时前
大数据(1) 大数据概述
大数据·hadoop·数据分析·spark·hbase