Java API操作Hadoop可能会遇到的问题以及解决办法

2023-11-16

Could not locate Hadoop executable: xxx\bin\winutils.exe

 

 

1

2

3

4

5

6

Caused by: java.io.FileNotFoundException: Could not locate Hadoop executable: D:\hadoop-3.0.3\bin\winutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems

    at org.apache.hadoop.util.Shell.getQualifiedBinInner(Shell.java:620)

    at org.apache.hadoop.util.Shell.getQualifiedBin(Shell.java:593)

    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:690)

    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:78)

        ...

 

解决办法:

下载WINUTILS.EXE,并放到Hadoop的bin目录,下载地址:https://github.com/steveloughran/winutils

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

 

 

1

2

3

4

5

6

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:549) ~[hadoop-common-3.1.0.jar:na]

    at org.apache.hadoop.util.Shell.getHadoopHomeDir(Shell.java:570) ~[hadoop-common-3.1.0.jar:na]

    at org.apache.hadoop.util.Shell.getQualifiedBin(Shell.java:593) ~[hadoop-common-3.1.0.jar:na]

    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:690) ~[hadoop-common-3.1.0.jar:na]

    ...

 

解决办法:

这个问题一般是因为当前服务器没有安装Hadoop,因此首先需要下载并解压Hadoop安装包,其次需要配置系统环境变量:

控制面板 > 系统和安全 > 系统 > 高级系统变量 > 环境变量,添加一个环境变量,名字是:HADOOP_HOME,值是:D:\hadoop-3.0.3

注:修改完成之后需要重启eclipse或IDEA,然后通过以下命令检查是否生效:

 

1

2

3

4

5

public static void main(String[] args) {

//      System.setProperty("HADOOP_USER_NAME","root");

    System.out.println(System.getenv("HADOOP_USER_NAME"));

    System.out.println(System.getenv("HADOOP_HOME"));

}

 

Permission denied: user=zifangsky, access=WRITE, inode=”/”:root:supergroup:drwxr-xr-x

 

 

1

2

3

4

5

6

7

8

org.apache.hadoop.security.AccessControlException: Permission denied: user=zifangsky, access=WRITE, inode="/":root:supergroup:drwxr-xr-x

    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:399)

    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:255)

    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:193)

    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1853)

    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1837)

    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkAncestorAccess(FSDirectory.java:1796)

    ...

 

解决办法:

这个问题的原因是当前运行系统用户跟HDFS上面的文件系统的用户/用户组不同,因此没有权限执行创建、删除等操作。

方法一:解决方法跟上面一样,通过添加环境变量,人为设置当前用户为HDFS的启动用户:

添加一个环境变量,名字是:HADOOP_USER_NAME,值是:root

方法二:使用HDFS的命令行接口修改相应目录的权限(不推荐):

 

1

hadoop fs -chmod 777 /

注:后面的/是当前要操作的HDFS路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java API操作Hadoop可能会遇到的问题以及解决办法 的相关文章

随机推荐

  • MySQL5.7开启通用日志功能

    起因 因项目数据库占用异常 查询数据库有哪些IP地址连接使用 Windows环境下 操作步骤 1 修改MySQL服务的my ini 文件 开启通用查询日志 general log 1 log output FILE general log
  • git format-patch详解

    git format patch详解 打包最近的一个patch git format patch HEAD 有几个 就打包几个patch的内容 或git format patch n 打包版本n1与n2之间的patch git format
  • 【Mysql高频面试题整理 一】

    Mysql高频面试题 持续手机更新ing Mysql 常用的数据库之一 面试一般会问哪些相关的问题呢 今天带大家整理一波 后面持续更新 一点浅见 欢迎各位大佬莅临指导 Mysql面试高频题有哪些呢 1 Mysql的存储引擎有哪些 有什么区别
  • 如何使用Vue实现自定义双向数据绑定?

    目录 理解Vue的双向数据绑定 sync修饰符实现双向数据绑定 自定义组件实现双向数据绑定 总结 理解Vue的双向数据绑定 在 Vue 中 双向数据绑定是一项非常强大的功能 它能够使数据和视图之间保持同步 让开发者更加方便的操作数据 在本文
  • Linux文件编程常用函数详解——read()和write()函数

    read 函数 include
  • 使用pandas把计算数据写入excel的指定单元格

    要使用 pandas 将计算数据写入 Excel 的指定单元格 您可以使用 pandas DataFrame to excel 方法 首先 您需要使用 pandas read excel 方法将 Excel 文件读入一个 pandas Da
  • Stable Diffusion使用方法

    SD的本地安装教程有很多我就不重复了 这里主要是记录我在使用SD Webui的过程中遇到的问题 总结的一些提升出图效率 出好图概率的经验 先搞几张看看效果 二次元妹妹 高达 Ok 以上只是一小部分成品 属于是抛砖引玉之作 我当时设置的参数出
  • word打不开提示安装Genko.msi该怎办

    word打不开提示安装Genko msi该怎办 今天有同学给我说电脑有问题了 启动WORD后让安装Genko msi 正好解决了顺便写一个经验吧 方法一 1 错误提示是这样的 2 首先在开始菜单打开 运行 win7直接开始菜单输入就行 然后
  • webpack5后台管理

    1 系统基于panjiachen后台管理系统模板 升级webpack5 2 github地址 https chengmanxiang webpack5 vue2 admin 3 线上地址 webpack5 vue2
  • Java实战-基于JDK的LRU算法实现、优雅的实现代码耗时统计(Spring AOP、AutoCloseable方式)

    场景 Java中基于JDK的LRU算法实现 LRU算法 缓存淘汰算法 Least recently used 最近最少使用算法 根据数据的历史访问记录来进行淘汰数据 其核心思想是 如果有数据最近被访问过 那么将来被访问的几率也更高 在Jav
  • TS2550: Property ‘entries‘ does not exist on type ‘ObjectConstructor‘.

    TS2550 Property entries does not exist on type ObjectConstructor Do you need to change your target library Try changing
  • requests请求

    请求方式 requests get 发送get请求 通过params传递参数 requests post 发送post请求 通过json data 传递参数 data 数据报文 dict字典类型 默认情况下请求头为applilcation
  • Unity学习总结(学几个月C++,找到了用Unity和C#的活)

    一 主人物控制 通过调整Main Camera位置和角度 可以确定合适的游戏视角 可以建立playController脚本 里面存放对主人物进行控制的代码 transform translate 可以设置当前组件的坐标 transform
  • 【STM32学习笔记】(1)—— STM32详解

    什么是STM32 STM32的字面含义 1 ST 代表着意法半导体公司 即由什么公司生产 意法半导体公司是一家SOC厂商 所谓SOC System on a Chip 根据它的中文意思可以知道 把系统都做在一个芯片上 如果在PC时代我们说一
  • 开放型 MODBUS-TCP规范(中文版)2

    导读 5 3 等级2指令详述 5 3 1 强制多点线圈 FC 15 请求 Byte 0 FC 0F 16进制 Byte 1 2 参考数值 Byte 3 4 比特数 1 800 Byte 5 字节数 B 比特数 7 8 Byte 6 B 5
  • Matlab计算完全消耗系数

    数据来源wiod 1 计算 clear clc eta cell 14 2 year 2000 2013 for i 1 14 eta i 2 1999 i end Type Sheet Fromat xlsfinfo F yida pro
  • 树莓派练习程序(避障模块)

    火焰检测模块如下 树莓派的引脚如下图 我们将Vcc引脚连接物理接口2 GND引脚连接物理接口39 DO引脚连接物理接口40 实物连接如下图 编程使用WiringPi库 使用wpi引脚编码方式控制GPIO 代码如下 include
  • 电路基础(3)电阻电路等效变换的经典例题

    1 R 2 求Rab的等效电阻 这个电路是个对称网络 若通过a b结点做一条中分线 中分线两侧的电路相同 d d d 三点的电位相同 2 求Rab的等效电阻 这个电路是双T网络 每个T形就是一个Y形联结 但两个Y形联结的中点电位一般不同 不
  • Jupyter Notebook打不开,点了后黑窗闪动了下

    版权声明 转载请注明作者 独孤尚良dugushangliang 出处 https blog csdn net dugushangliang article details 114667080 在程序菜单中双击Jupyter Notebook
  • Java API操作Hadoop可能会遇到的问题以及解决办法

    Could not locate Hadoop executable xxx bin winutils exe 1 2 3 4 5 6 Caused by java io FileNotFoundException Could not lo