解决java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.的错误_java.io.filenotfoundexception: java.io.filenotfoun-程序员宅基地

技术标签: java  hadoop  后端  大数据  开发语言  

1. 复现错误


今天在运行同事给我的项目,但在项目启动时,报出如下错误:

java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems
	at org.apache.hadoop.util.Shell.fileNotFoundException(Shell.java:548)
	at org.apache.hadoop.util.Shell.getHadoopHomeDir(Shell.java:569)
	at org.apache.hadoop.util.Shell.getQualifiedBin(Shell.java:592)
	at org.apache.hadoop.util.Shell.<clinit>(Shell.java:689)
	at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:78)
	at org.apache.hadoop.conf.Configuration.getBoolean(Configuration.java:1665)
	at org.apache.hadoop.security.SecurityUtil.setConfigurationInternal(SecurityUtil.java:104)
	at org.apache.hadoop.security.SecurityUtil.<clinit>(SecurityUtil.java:88)
	at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:316)
	at org.apache.hadoop.security.UserGroupInformation.setConfiguration(UserGroupInformation.java:365)
	at com.test.main(GetHudiSchemaByMetaStore.java:25)
Caused by: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.
	at org.apache.hadoop.util.Shell.checkHadoopHomeInner(Shell.java:468)
	at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:439)
	at org.apache.hadoop.util.Shell.<clinit>(Shell.java:516)
	... 7 more

java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.

2. 分析错误


通过java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.错误可知,这是未设置HADOOP_HOME hadoop.home.dir

HADOOP_HOMEhadoop.home.dir主要是干嘛的呢?是配置在本地环境变量中的Hadoop地址

那么需要下载Windows版本的Hadoop来设置么?如果是远程连接Linux上的Hadoop集群,则完全不需要再下载安装Windows版本的Hadoop!!!

本地远程连接Hadoop系统时需要在本地配置相关的Hadoop变量,主要包括hadoop.dllwinutils.exe等。

【注意】由于hadoop主要基于linux编写,winutil.exe主要用于模拟linux下的目录环境。

Hadoopwindows下运行或调用远程Hadoop集群的时候,需要该辅助程序才能运行。winutilsWindows中的二进制文件,适用于不同版本的Hadoop系统并构建在Windows VM上,该VM用以在Windows系统中测试Hadoop相关的应用程序。

3. 解决问题


了解到原因之后,可以根据安装Hadoop集群的版本,下载相应的winutils

3.1 下载Hadoop


如果你还没有安装Hadoop,可以按如下方式下载:

  1. hadoop官网下载,镜像下载链接:https://mirrors.tuna.tsinghua.edu.cn

  2. 也可以下载我百度网盘中的3.2.1版本的:

下载完成后,会得到hadoop-3.2.1.tar.gz,因为我下载的是hadoop-3.2.1版本。

解压hadoop-3.2.1.tar.gz得到hadoop-3.2.1,复制hadoop-3.2.1到你想要的文件夹中。

我是把hadoop-3.2.1放在D:\Software文件夹下。

接下来,我便介绍如何配置Hadoop

3.2 配置Hadoop

  1. 右键此电脑,点击属性:

在这里插入图片描述

  1. 点击高级系统配置

在这里插入图片描述

  1. 点击环境变量

在这里插入图片描述

  1. 在环境变量中的系统变量,点击新建:

在这里插入图片描述

  1. 新建系统变量,填写变量名变量值,点击确定
  • 变量名:HADOOP_HOME

  • 变量值:D:\Software\hadoop-3.2.1

在这里插入图片描述

  1. 双击系统变量的path,追加%HADOOP_HOME%\bin

在这里插入图片描述

在这里插入图片描述

之后点击三次确定退出编辑。

  1. 查看配置文件

hadoop-3.2.1/etc/hadoop目录下,找到hadoop-env.cmd,看jdk目录!

如果你之前配置了java_home,不用修改配置:

在这里插入图片描述

如果你没有配置java_home,需要把jdk的绝对路径写上,比如:C:\Program Files\Java\jdk1.8.0_102

在这里插入图片描述

3.3 下载winutils

下载winutils,下载离你hadoop最近的版本使用(比如我的hadoop3.2.1,我下载的winutils3.1.2),不然会出现一些列的问题。

我提供如下两种下载地址:

  1. GitHub下载地址:https://github.com/steveloughran/winutils

在这里插入图片描述

由上图可知,截至完稿的时间,github上的更新到3.0.0,但此版本后面出现一些问题,大家尽量安装和你的hadoop对应的版本。

  1. gitee下载链接:https://gitee.com/shockingblue/winutils

在这里插入图片描述

由上图可知,截至完稿的时间,gitee上的更新到3.2.1,相对github上的版本较多。

或者,从我的网盘中下载winutils

  1. 链接:https://pan.baidu.com/s/1EG67gZ4MLbHONTdUci4cXg

  2. 提取码:orab

3.4 配置winutils

\

  1. 找到3.1.2版本winutilsbin文件夹

在这里插入图片描述

  1. 用该目录覆盖掉hadoopbin目录。

在这里插入图片描述

  1. 复制成功之后,会看到下面那个winutils.exe文件:

在这里插入图片描述

  1. 替换后将bin下面的hadoop.dll拷贝到C:\Windows\System32目录下

在这里插入图片描述

  1. 大功告成,记得重启idea

配置完成后,一定要重启idea!否则,配置不生效

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lvoelife/article/details/133349627

智能推荐

【资源搜集】7 款不错的聊天机器人 API 接口搜集_免费的chatai接口-程序员宅基地

文章浏览阅读2.6w次,点赞29次,收藏146次。前段时间玩微信爬虫,仿佛打开了新世界的大门。使用 wxpy 库调用微信的接口,可以获取好友信息,聊天消息收发等功能。脑洞一开,这样不就可以用来做 聊天消息防撤回,红包提醒,自动回复这些有意思的玩意儿了嘛!言归正传,这次我搜集整理了一些比较好用的 ”聊天机器人“ 的 API 接口。如果后期有机会的话,把它们接入我的程序中,做一个陪聊小助手,也是一个不错的选择。小 i 机..._免费的chatai接口

毕业设计:基于深度学习的网课学生坐姿检测系统-程序员宅基地

文章浏览阅读889次,点赞24次,收藏36次。毕业设计:基于深度学习的网课学生坐姿检测系统利用深度学习算法对摄像头捕捉的学生图像进行特征提取和分类,以判断学生的坐姿是否正确。首先,通过图像采集模块获取学生的实时视频流,判断学生的坐姿状态。为计算机毕业设计提供了一个创新的方向,为毕业生提供了一个有意义的研究课题。对于计算机专业、软件工程专业、人工智能专业、大数据专业的毕业生而言,提供了一个具有挑战性和创新性的研究课题。无论您对深度学习技术保持浓厚兴趣,还是希望探索机器学习、信息安全、算法或人工智能的领域的同学,能为您提供灵感和指导;_坐姿检测系统

include详解 shell_thinkphp诸多限制条件下如何getshell详解-程序员宅基地

文章浏览阅读300次。前言先说说2020_n1CTF的web题Easy_tp5复现问题。这个题在保留thinkphp的RCE点的同时,并且RCE中ban掉许多危险函数,只能允许单参数的函数执行。对于现在在网络中流传的文件包含的点也增加了限制。smile yyds!先说一下这个题限制条件:thinkphp版本:5.0.0php版本:7对于包含文件增加了限制ban掉所有的单参数危险函数设置open_basedir为web目..._thinkphp5.x getshell 禁用函数

【好文推荐】Gradle-源码全解析(1)_gradle源码分析-程序员宅基地

文章浏览阅读741次,点赞14次,收藏20次。希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。_gradle源码分析

第 6 章 URDF、Gazebo与Rviz综合应用(自学二刷笔记)-程序员宅基地

文章浏览阅读424次,点赞11次,收藏10次。kinect信息仿真以及显示

okv5 API常见问题_v5okv5-程序员宅基地

文章浏览阅读7.8k次,点赞2次,收藏9次。发起请求所有REST请求头都必须包含以下内容:(公共数据不需要)OK-ACCESS-KEY字符串类型的APIKey。OK-ACCESS-SIGN使用HMAC SHA256哈希函数获得哈希值,再使用Base-64编码(请参阅签名)。OK-ACCESS-TIMESTAMP发起请求的时间(UTC),如:2020-12-08T09:08:57.715ZOK-ACCESS-PASSPHRASE您在创建API密钥时指定的Passphrase。所有请求都应该含有application/json类型内容,并且是_v5okv5

随便推点

Linux系统下安装jdk及环境配置-程序员宅基地

文章浏览阅读66次。Linux系统下安装jdk及环境配置1、利用yun 云安装 :首先在liunx下输入:yum -y list java*→yum install -y java-1.8.0-openjdk-devel.x86_64(jdk1.8版本)2、手动安装:去Oracle官网下载需要安装的jdk版本,我这里用的是jdk-8u181-linux-x64.tar.gz将该文件包放在user/java下...

C语言简单的数据结构:单链表的有关算法题(2)-程序员宅基地

文章浏览阅读983次,点赞26次,收藏6次。接着我们介绍后面的三道题,虽然代码变多了但我们的思路更加通顺了。题目:4. 单链表相关经典算法OJ题3:合并两个有序链表5. 循环链表经典应⽤-环形链表的约瑟夫问题6. 单链表相关经典算法OJ题5:分割链表

《Android App开发入门与项目实战》资源下载和内容勘误_android app开发入门与项目实战pdf-程序员宅基地

文章浏览阅读3.2k次。下面是《Android App开发入门与项目实战》一书用到的工具和代码资源:1、本书使用的Android Studio版本为4.1,最新的安装包可前往。2、本书提供所有示例源码的demo工程下载,源码(适配Android4.4到Android11)的下载方式见该书前言末尾的二维码,获取ppt课件同样扫描前言末尾的二维码。最新的源码也可访问我的gitee获取。_android app开发入门与项目实战pdf

< 前端性能优化: 资源加载优化 >_前端资源加载优化-程序员宅基地

文章浏览阅读991次,点赞2次,收藏6次。众所周知,前端是由HTML、CSS、JS等文件资源共同作用下渲染构建出来的。现今前端项目,大多为单页面应用,单页面应用的优点非常多(点击跳转 SPA单页面讲解),但是也并非没有缺点。由于单页面的原因,项目所需资源都需要在初次加载首屏时被加载,这就造成了首屏加载性能受到影响!对于首屏性能优化,就衍生出了相关需要思考的问题。如何将首屏加载的资源,分段将需要的资源及时加载出来,避免页面内容不显示的同时,又能避免加载多余并非立刻需要使用的资源呢?_前端资源加载优化

在CentOS上为Docker开启SELinux_docker selinux-enabled-程序员宅基地

文章浏览阅读3.7k次。现在公司生产服务器一般都使用CentOS 7系统,安装Docker也一直都是使用yum命令直接从CentOS自己的源安装。自从Docker项目改名为moby,进而诞生CE和EE两个不同版本后。不知是因为版权还是其他的什么原因,CentOS源中的Docker版本不再更新了,default维持在1.12.6,latest为1.13.1。为了使用新版本的Docker,只能添加官方repo,然后安装d..._docker selinux-enabled

【数据结构与算法】图的存储_领接矩阵上三角-程序员宅基地

文章浏览阅读853次。介绍图的 4 中存储方式:邻接矩阵、邻接表、十字链表和多重链表_领接矩阵上三角

推荐文章

热门文章

相关标签