当前位置: 首页 > news >正文

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

文章目录

  • 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/WindowsProblemsat 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.lryc.cn/news/177353.html

相关文章:

  • 软件设计中常见的设计模式
  • 为什么我的remix没有injected web3
  • 第1章 数据结构绪论
  • 现代 GPU 容易受到新 GPU.zip 侧通道攻击
  • 8+单基因+细胞凋亡+WGCNA+单细胞+实验验证
  • BM4 合并两个排序的链表
  • 【lesson12】理解进程地址空间
  • 计算机里的神灵(SCIP)
  • 基于微信小程序的公交信息在线查询系统小程序设计与实现(源码+lw+部署文档+讲解等)
  • 【STM32】IAP升级01 bootloader实现以及APP配置(主要)
  • ruoyi(若依)接口拦截路径配置,接口访问要授权,放开授权直接访问
  • Ctfshow web入门 XSS篇 web316-web333 详细题解 全
  • watch()监听vue2项目角色权限变化更新挂载
  • 轻量化设计、佩戴更舒适——轻律 Umelody U1头戴式蓝牙耳机
  • 嵌入式Linux应用开发-基础知识-第三章 LED原理图-GPIO及操作
  • 外贸人员如何选择适合的邮箱服务
  • pt29django教程
  • 【操作系统笔记七】进程和线程
  • Kakfa高效读写数据
  • C++ 类和对象(4)构造函数
  • 数据结构————广度寻路算法 Breadth First Search(广度优先算法)
  • 安卓桌面记事本便签软件哪个好用?
  • 河北吉力宝以步力宝健康鞋引发的全新生活生态商
  • 反射获取Constructor、Field、Method对象
  • 【Netty】 ByteBuf的常用API总结
  • 热门敏捷开发管理工具
  • Java分支结构:一次不经意的选择,改变了我的一生。
  • Unity中Shader需要了解的点与向量
  • Java初始化大量数据到Neo4j中(一)
  • Excel·VBA日期时间转换提取正则表达式函数