在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/  <<

提君博客原创

源码追踪,解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题的更多相关文章

  1. hadoop解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题

    先看下自己的JAVA_HOME里面有没有空格目录,如果有的话,先把JAVA_HOME换个没空格的位置. 在windows系统本地运行spark的wordcount程序,会出现一个异常,但不影响现有程序 ...

  2. java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries

    在已经搭建好的集群环境Centos6.6+Hadoop2.7+Hbase0.98+Spark1.3.1下,在Win7系统Intellij开发工具中调试Spark读取Hbase.运行直接报错: ? 1 ...

  3. windows 中使用hbase 异常:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

    平时一般是在windows环境下进行开发,在windows 环境下操作hbase可能会出现异常(java.io.IOException: Could not locate executable nul ...

  4. spark开发常见问题之一:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

    最近在学习研究pyspark机器学习算法,执行代码出现以下异常: 19/06/29 10:08:26 ERROR Shell: Failed to locate the winutils binary ...

  5. Spark报错java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

    Spark 读取 JSON 文件时运行报错 java.io.IOException: Could not locate executable null\bin\winutils.exe in the ...

  6. Spark- ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

    运行 mport org.apache.log4j.{Level, Logger} import org.apache.spark.rdd.RDD import org.apache.spark.{S ...

  7. Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

    很明显应该是HADOOP_HOME的问题.如果HADOOP_HOME为空,必然fullExeName为null\bin\winutils.exe.解决方法很简单,配置环境变量,不想重启电脑可以在程序里 ...

  8. Could not locate executable null\bin\winutils.exe in the Hadoop binaries解决方式 spark运行wordcoult

    虽然可以正常运行,但是会出异常,现给出解决方法. 1.问题:   2.  问题解决: 仔细查看报错是缺少winutils.exe程序. Hadoop都是运行在Linux系统下的,在windows下ec ...

  9. Could not locate executable null\bin\winutils.exe in the Hadoop binaries解决方式

    1.  问题: 2.  问题解决: 仔细查看报错是缺少winutils.exe程序. Hadoop都是运行在Linux系统下的,在windows下eclipse中运行mapreduce程序,要首先安装 ...

随机推荐

  1. WIN10中DOCKER的安装

    1.docker的安装 环境准备 Docker for Windows是一个Docker Community Edition(CE)应用程序.Docker for Windows安装包包含了在Wind ...

  2. UVA12265-Selling Land(细节处理)

    Problem UVA12265-Selling Land Accept: 309  Submit: 3231Time Limit: 3000 mSec Problem Description Inp ...

  3. JS学习实践(1) JavaScript 修改图像灯泡

    修改灯泡 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  4. [MicroPython]STM32F407开发板DIY声光控开关

    1.实验目的 1. 学习在PC机系统中扩展简单I/O 接口的方法. 2. 进一步学习编制数据输出程序的设计方法. 3. 学习光敏模块的工作原理. 4. 学习声音的工作原理. 5. 学习F40 7Mic ...

  5. 使用webstrom开发react-native时react-native代码会出现红色下划线的解决方法

    问题:使用webstrom开发react-native时react-native代码会出现红色下划线的解决方法 解决方法:webstrom ->preferences->Laugrange ...

  6. linux内存源码分析 - SLUB分配器概述

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ SLUB和SLAB的区别 首先为什么要说slub分配器,内核里小内存分配一共有三种,SLAB/SLUB/SLOB ...

  7. X86-64寄存器和栈帧--牛掰降解汇编函数寄存器相关操作

    X86-64寄存器和栈帧 概要 说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64:正是由于能向后兼容,AM ...

  8. BZOJ1069 SCOI2007 最大土地面积 凸包、旋转卡壳

    传送门 在这里假设可以选择两个相同的点吧-- 那么选出来的四个点一定会在凸包上 建立凸包,然后枚举这个四边形的对角线.策略是先枚举对角线上的一个点,然后沿着凸包枚举另一个点.在枚举另一个点的过程中可以 ...

  9. Ext中 grid 设置行样式

    //设置样式   JS var SetRowClass = function(record, rowIndex, rowParams, store) { if (record.data.status ...

  10. Java核心数据结构(List,Map,Set)原理与使用技巧

    JDK提供了一组主要的数据结构实现,如List.Map.Set等常用数据结构.这些数据都继承自 java.util.Collection 接口,并位于 java.util 包内. 1.List接口 最 ...