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

淡淡的烟草味﹌ 2021-06-24 15:59 420阅读 0赞

我们在本地(windows)运行mapreduce或者habase程序时,可能会出现如下错误:

  1. Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
  2. 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源码中发现

  1. private static String checkHadoopHome() {
  2. // first check the Dflag hadoop.home.dir with JVM scope
  3. String home = System.getProperty("hadoop.home.dir");
  4. // fall back to the system/user-global env variable
  5. if (home == null) {
  6. home = System.getenv("HADOOP_HOME");
  7. }
  8. ...
  9. }

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

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

发表评论

表情:
评论列表 (有 0 条评论,420人围观)

还没有评论,来说两句吧...

相关阅读