解决java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.的错误

news2024/11/18 3:50:02

文章目录

  • 1. 复现错误
  • 2. 分析错误
  • 3. 解决问题
    • 3.1 下载Hadoop
    • 3.2 配置Hadoop
    • 3.3 下载winutils
    • 3.4 配置winutils

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版本的:

    • 链接:https://pan.baidu.com/s/1dcywut63xDFSdHIIogZUWw

    • 提取码:y6i4

下载完成后,会得到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!否则,配置不生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1047140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

15.TIM输入捕获

目录 一、输入捕获 1.1 输入捕获简介 1.2输入捕获的各部分电路 ​编辑 1.3 输入捕获的主模式、从模式、触发源选择&#xff08;简称&#xff1a;主从触发模式&#xff09; ​编辑​编辑 ​编辑1.4 输入捕获和PWMI基本结构 二、频率的测量方法 2.1 测频法 2.2 …

新移科技发布基于联发科MT8390(Genio 700)平台的物联网 AI 核心板

新移科技研发的XY8390物联网 AI 核心板是一款高度集成、功能强大的平台&#xff0c;该核心板专为各种人工智能 (AI) 和物联网 (IoT) 用例而设计。 处理器采用了 Arm DynamIQ™ 技术&#xff0c;结合了高性能 Cortex-A78 内核和高能效 Cortex-A55 内核&#xff0c;并配备了 Arm …

【每日一题】528. 按权重随机选择

528. 按权重随机选择 - 力扣&#xff08;LeetCode&#xff09; 给你一个 下标从 0 开始 的正整数数组 w &#xff0c;其中 w[i] 代表第 i 个下标的权重。 请你实现一个函数 pickIndex &#xff0c;它可以 随机地 从范围 [0, w.length - 1] 内&#xff08;含 0 和 w.length - 1&…

康耐视visionpro脚本CogRectangleAffine ,CogPolygon图形限定框,边界显示(划痕缺陷案例分享)

目录 1.划痕缺陷整体方案设计:2.测试一效果图:3.测试一脚本编写​:4.测试二效果图:5.测试二脚本编写:6.测试三效果图:7.​测试三脚本编写:测试版本:康耐视visionpro9.0 1.划痕缺陷整体方案设计: 2.测试一效果图: 3.测试一脚本编写​: CogRectangleAffine Rectangle…

Kakfa高效读写数据

1.概述 无论 kafka 作为 MQ 也好&#xff0c;作为存储层也罢&#xff0c;无非就是两个功能&#xff1a;一是 Producer 生产的数据存到 broker&#xff0c;二是 Consumer 从 broker 读取数据。那 Kafka 的快也就体现在读写两个方面了&#xff0c;本文也是从这两个方面去剖析Kafk…

【lesson12】理解进程地址空间

文章目录 什么是进程地址空间&#xff1f;进程地址空间的作用扩展内容初步理解深入理解 什么是进程地址空间&#xff1f; 故事&#xff1a; 背景&#xff1a;有一个大富豪&#xff0c;家里的存款有10亿美元&#xff0c;他有三个私生子三个人之间彼此互不相识&#xff0c;只有富…

外贸人员如何选择适合的邮箱服务

随着互联网和数字技术的快速发展&#xff0c;电子邮件已经成为商务沟通的主要方式之一。对于外贸人员来说&#xff0c;选择一个合适且高效的邮箱服务至关重要。本文将探讨外贸人员在选择外贸邮箱时应考虑的因素&#xff0c;以便找到最适合自己的解决方案。 “外贸人员如何选择合…

DE0开发板交通灯十字路口红绿灯VHDL

名称&#xff1a;基于DE0开发板的交通灯十字路口红绿灯 软件&#xff1a;Quartus 语言&#xff1a;VHDL 要求&#xff1a; 设计一个十字路口交通信号灯的控制电路。分为两种情况&#xff0c;正常状态和报警状态。 1.正常状态&#xff1a;要求红、绿灯按一定的规律亮和灭&a…

嵌入式Linux应用开发-基础知识-第三章 LED原理图-GPIO及操作

嵌入式Linux应用开发-基础知识-第三章 LED原理图-GPIO及操作 第三章 硬件知识_LED 原理图3.1 先来讲讲怎么看原理图 第四章 普适的 GPIO 引脚操作方法4.1 GPIO 模块一般结构4.2 GPIO 寄存器操作4.3 GPIO 的其他功能&#xff1a;防抖动、中断、唤醒 第五章 具体单板的 GPIO 操作…

Leetcode 992. K 个不同整数的子数组

文章目录 题目代码&#xff08;9.27 首刷看解析&#xff09; 题目 Leetcode 992. K 个不同整数的子数组 代码&#xff08;9.27 首刷看解析&#xff09; 滑动窗口&#xff0c;恰好转换为&#xff1a;最多K个不同的数 - 最多K-1个不同的数 class Solution { public:int subarr…

uni-app--》基于小程序开发的电商平台项目实战(三)

&#x1f3cd;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名在校大学生 &#x1f6f5;个人主页&#xff1a;亦世凡华、 &#x1f6fa;系列专栏&#xff1a;uni-app &#x1f6b2;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

较真儿学源码系列-PowerJob MapReduce源码分析

PowerJob版本&#xff1a;4.3.2-main。 之前分析过PowerJob的时间轮源码&#xff0c;感兴趣的可以查看《较真儿学源码系列-PowerJob时间轮源码分析》 1 简介 MapReduce是一种编程模型&#xff0c;以及在集群上使用并行、分布式算法处理和生成大数据集的相关实现。 一个…

MySQL学习笔记18

MySQL的备份与恢复&#xff1a; 制定数据库备份策略进行备份&#xff0c;并且把数据导入到测试环境。 核心技术&#xff1a; 1&#xff09;掌握MySQL的备份工具使用及各自特点&#xff1b; 2&#xff09;熟悉Shell脚本&#xff1b; 3&#xff09;熟悉MySQL数据的导入导出&a…

苹果 CMS 原生 Java 白菜影视 App 源码【带打包教程】

苹果 CMS 原生 Java 白菜影视 App 源码是一款功能强大的影视应用程序&#xff0c;支持画中画、投屏、点播、播放前广告和支持普通解析等多种功能。与萝卜 App 源码相比&#xff0c;该套源码更加稳定&#xff0c;且拥有画中画投屏和自定义广告等功能&#xff0c;提高了安全性。 …

PMP考前学习计划

很多小伙伴在刚刚接触到PMBOK时&#xff0c;无从下手&#xff0c;也不知道如何合理地安排自己的学习时间&#xff0c;没有一个学习计划作为指导。 今天我就给大家分享一份详细的PMP考前学习计划&#xff0c;这份计划整理并无私分享&#xff0c;欢迎大家分享给身边备考PMP的同事…

Java分支结构:一次不经意的选择,改变了我的一生。

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、顺序结构二、分支结构1、if语句2、switch语句 好久不见&#xff01;命运之轮常常在不经意间转动&#xff0c;有时一个看似微…

SEO的优化教程(百度SEO的介绍和优化)

百度SEO关键字介绍&#xff1a; 百度SEO关键字是指用户在搜索引擎上输入的词语&#xff0c;是搜索引擎了解网站内容和相关性的重要因素。百度SEO关键字可以分为短尾词、中尾词和长尾词&#xff0c;其中长尾词更具有针对性和精准性&#xff0c;更易于获得高质量的流量。蘑菇号-…

【MATLAB源码-第39期】基于m序列/gold序列的直接扩频通信仿真,编码方式采用卷积码,调制方式采用BPSK。

1、算法描述 直接序列扩频通信系统的仿真一般包括以下几个主要步骤&#xff1a;信号产生、扩频、卷积编码、BPSK调制、信道传输、BPSK解调、卷积码译码和解扩。 信号产生&#xff1a; 首先&#xff0c;产生一个二进制数据序列作为待发送的信息位。 扩频&#xff1a; 采用m序列…

windows11系统没有系统散热方式的解决办法

一、问题描述 当我们查看Win11系统的&#xff08;同时按下键盘的WinR键即可打开运行窗口&#xff09;【控制面板】-->【硬件和声音】-->【电源选项】-->【更改计划设置】-->【 更改高级电源设置】-->【处理器电源管理】下没有系统散热方式的选项&#xff0c;如下…

黑马JVM总结(二十五)

&#xff08;1&#xff09;字节码指令-cinit 构造方法可以分为两类&#xff0c;一类是cinit 一类init cinit是整个类的构造方法 putstatic&#xff1a;进行static变量的赋值&#xff0c;是到常量池里找到名字一个叫做i的变量 &#xff08;2&#xff09;字节码指令-init in…