win7运行mapreduce报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

前端之家收集整理的这篇文章主要介绍了win7运行mapreduce报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在本地(windows)运行mapreduce或者habase程序时,可能会出现如下错误
Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
Failed to locate the winutils binary in the hadoop binary path

这是因为hadoop主要是在Linux环境上运行的,对windows支持不是特别好。解决方法

1)下载winutils.exe:
GitHub上,有人提供了winutils的windows的版本,项目地址是:https://github.com/srccodes/hadoop-common-2.2.0-bin直接下载此项目的zip包,下载后是文件名是hadoop-common-2.2.0-bin-master.zip,随便解压到一个目录。
或者:

2)设置环境变量:

增加用户变量HADOOP_HOME,值是下载的zip包解压的目录,然后在系统变量path里增加$HADOOP_HOME\bin 即可。

最后,需要重启windows后,再次运行程序即可。

我们在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");

猜你在找的Windows相关文章