天天看点

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

在Win7系统Intellij开发工具中调试Spark读取Hbase。运行直接报异常

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

这应该是在win7系统下没有配置hadoop环境变量的问题!注意在配置hadoop环境变量之前,将下载好的winutils.exe拷贝到hadoop的安装的目录下的bin目录里,winutils.exe下载地址:

http://download.csdn.net/detail/chenweijisun/9839521

在配置环境变量的时候,一定要添加“HADOOP_HOME”用户变量再添加到系统变量里最后重启电脑,不然还会出现上面异常,原因在hadoop源码里看到,根据

System.getenv("HADOOP_HOME")

来识别hadoop的,

private static String checkHadoopHome() {

    // first check the Dflag hadoop.home.dir with JVM scope
    String home = System.getProperty("hadoop.home.dir");

    // fall back to the system/user-global env variable
    if (home == null) {
      home = System.getenv("HADOOP_HOME");
    }
     ...
}
           

如果觉得添加环境变量的步骤操作很繁琐 ,也可以直接在代码里加上:

System.setProperty("hadoop.home.dir", "D:\\Program Files\\hadoop-2.5.1");

           

(不要忘了把下载好的winutils.exe放在HADOOP_HOME/bin目录下)