源码追踪,解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题
在windows系统本地运行spark的wordcount程序,会出现一个异常,但不影响现有程序运行。
>>提君博客原创 http://www.cnblogs.com/tijun/ <<
总归是一个异常,老是爆红,看着心烦,下面是异常信息
提君博客原创
让我们源码追踪一下,看看到底是什么原因导致,点击第一行爆红的异常信息提示,就是(shell.java:355)
看到我的截图提示,大概了解什么原因了。发现HADOOP_HOME_DIR为null,右边outline里面找到一个私有静态变量叫HADOOP_HOME_DIR,
点击看看是如何赋值的,
HADOOP_HOME_DIR他的初始化应该是调用了一个checkHadoopHome()的方法,找到这个方法的实现
在checkHadoopHome()这个方法实现里面,真相已经大白于天下了,方法里面需要找到一些系统配置信息,而我们程序里或系统里没有给到。
提君博客原创
这就针对的解决就可以了。而且根据checkHadoopHome()这个方法的实现过程,我们可以得出两种解决这个问题的方法。
>>提君博客原创 http://www.cnblogs.com/tijun/ <<
两种方法的前提都是需要在本地解压hadoop的安装包的。
提君博客原创
我这里的解压的是hadoop-common-2.2.0-bin-master.zip。
这里主要的还是需要在bin目录下找winutils.exe。
第一种方法,
我们看到源码292行,他是先从System.getProperty("hadoop.home.dir");这里获得信息,
从他的注释信息看
// first check the Dflag hadoop.home.dir with JVM scope
首先检查的应该是java虚拟机里面的这个hadoop.home.dir,
那我们就可以直接在程序开始执行出手动添加
System.setProperty("hadoop.home.dir", "D:\\Programe\\hadoop-common-2.2.0-bin-master");
注意:这段代码要加到程序的开头第一行
运行程序,刚刚的异常爆红就不会出现了。
第二种方法,
从源码296行的System.getenv("HADOOP_HOME");,不难看出,如果在虚拟机里面没有找到hadoop.home.dir
那就从这行代码获得,从注释信息来看
// fall back to the system/user-global env variable
那就是从系统的用户全局变量里面找HADOOP_HOME这个配置。
那我们直接在Windows的系统变量里面配置HADOOP_HOME,然后在PATH里面配置HADOOP_HOME/bin
这种方法需要重启计算机,运行程序,刚刚的异常爆红就不会出现了。
至此,两种方法任选其一,都是可以解决问题的
>>提君博客原创 http://www.cnblogs.com/tijun/ <<
提君博客原创
转载于:https://www.cnblogs.com/tijun/p/7567664.html
源码追踪,解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题相关推荐
- 解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
在Windows环境下使用IDEA.eclipse运行hadoop.spark程序时产生如下异常: 1.java.io.IOException: Could not locate executable ...
- 【收藏】Hadoop解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题
https://www.cnblogs.com/tijun/p/7567664.html
- [Spark]Could not locate executable null\bin\winutils.exe in the Hadoop binaries
这里集群环境不同,但遇到的问题及解决办法其实一样,时间有限,就不详细修改了.我主要是在Windows本地运行Spark程序出现该错误. 本文转自http://www.cnblogs.com/hyl82 ...
- 【Spark】Spark报错:Could not locate executable null\bin\winutils.exe in the Hadoop binaries
IDEA集成Scala和Spark之后,运行demo可能会报错: java.io.IOException: Could not locate executable null\bin\winutils. ...
- 【Spark】Could not locate executable null\bin\winutils.exe in the Hadoop binaries
项目场景: 在ideal中运行spark项目进行数据存储文件时报错. 问题描述: 报错:Could not locate executable null\bin\winutils.exe in the ...
- Could not locate executable null\bin\winutils.exe in the Hadoop binaries全网最强windows10安装hadoop教程
简述 详细安装配置步骤 1.安装jdk 2.下载安装hadoop 2.1 下载 2.2 解压安装 2.3 配置环境变量 2.4 配置cmd与xml文件 设置完毕启动hadoop 简述 报错内容:Cou ...
- 安装spark,Could not locate executable null\bin\winutils.exe in the Hadoop binaries报错
安装spark,Could not locate executable null\bin\winutils.exe in the Hadoop binaries报错 缺少winutils.exe程序 ...
- IDEA启动hadoop报Could not locate executable null\bin\winutils.exe in the Hadoop binaries.错误的解决办法
打开了一个hadoop项目,项目代码确定无误可运行,但是本地运行报错如下 仔细看一下报错路径,显示的是null\bin\winutils.exe 而我的winutils已经下载下来并且复制到bin目录 ...
- bug-hadoop:Could not locate executable null\bin\winutils.exe in the Hadoop binaries
原因:缺少winutils.exe程序 Hadoop都是运行在Linux系统下的,在windows下eclipse中运行mapreduce程序,要首先安装Windows下运行的支持插件 下载: htt ...
最新文章
- java中标签怎么用_Java中标签的使用
- printf()用法详解(转)
- 【论文解读】CIKM20-MiNet:阿里|跨域点击率预估混合兴趣模型
- 编解码器之战:AV1、HEVC、VP9和VVC
- Python time sleep()方法
- qt能使用logback_X04Logback的配置
- 使用dao时,如何同时使用动态表名和过滤字段?
- 回溯法采用的搜索策略_数值优化|笔记整理(3)——线搜索中的步长选取方法,线性共轭梯度法...
- Javascript鼠标键盘事件
- sql server 内存_SQL Server内存性能指标–第5部分–了解惰性写入,空闲列表停顿/秒和待批内存授予
- 不只有BERT!盘点2018年NLP令人激动的10大想法
- ios布局 分为左右两块_安卓手机一年后卡顿,原因是安卓系统太开放了,改走iOS封闭之路...
- php字符串怎么判断是否相等,php判断两个字符串是否相等
- XenServer 6.5实战系列之九:Creating a VM Template from a VM Snapshot
- matlab消除多重共线性,多重共线性问题的几种解决方法-解决多重共线性的方法...
- PLC闪烁电路的实现
- PS2020一打开就闪退的解决办法
- 【DOM】DOM概述及DOM操作之如何查找元素_01
- ESP8266 NodeMCU开发板
- java simsimi_“小黄鸡”中文聊天机器人的详细说明.