这里集群环境不同,但遇到的问题及解决办法其实一样,时间有限,就不详细修改了。我主要是在Windows本地运行Spark程序出现该错误。

本文转自http://www.cnblogs.com/hyl8218/p/5492450.html,所有权力归原作者所有。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
15/06/11 15:35:50 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.
    at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:356)
    at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:371)
    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:364)
    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)
    at org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:611)
    at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:272)
    at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:260)
    at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:790)
    at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:760)
    at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:633)
    at org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2001)
    at org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2001)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.util.Utils$.getCurrentUserName(Utils.scala:2001)
    at org.apache.spark.SecurityManager.<init>(SecurityManager.scala:207)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:218)
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:163)
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:269)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:272)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:154)
    at SparkFromHbase$.main(SparkFromHbase.scala:15)
    at SparkFromHbase.main(SparkFromHbase.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

查看hadoop源码发现里有这么一段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  public static final String getQualifiedBinPath(String executable)
  throws IOException {
    // construct hadoop bin path to the specified executable
    String fullExeName = HADOOP_HOME_DIR + File.separator + "bin"
      + File.separator + executable;
    File exeFile = new File(fullExeName);
    if (!exeFile.exists()) {
      throw new IOException("Could not locate executable " + fullExeName
        + " in the Hadoop binaries.");
    }
    return exeFile.getCanonicalPath();
  }
private static String HADOOP_HOME_DIR = checkHadoopHome();
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");
    }
     ...
}

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

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

注:E:\\Program Files\\hadoop-2.7.0是我本机解压的hadoop的路径。

稍后再执行,你可能还是会出现同样的错误,这个时候你可能会要怪我了。其实一开始我是拒绝的,因为你进入你的hadoop-x.x.x/bin目录下看,你会发现你压根就没有winutils.exe这个东东。

于是我告诉你,你可以去github下载一个,地球人都知道的地址发你一个。

地址:https://github.com/srccodes/hadoop-common-2.2.0-bin

不要顾虑它的版本,不用怕,因为我用的最新的hadoop-2.7.0都没问题!下载好后,把winutils.exe加入你的hadoop-x.x.x/bin下。

至此问题解决了,如果还没解决,那你是奇葩哥了,可以加我的QQ!

[Spark]Could not locate executable null\bin\winutils.exe in the Hadoop binaries相关推荐

  1. 【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. ...

  2. 【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 ...

  3. 安装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程序 ...

  4. 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 ...

  5. 解决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 ...

  6. IDEA启动hadoop报Could not locate executable null\bin\winutils.exe in the Hadoop binaries.错误的解决办法

    打开了一个hadoop项目,项目代码确定无误可运行,但是本地运行报错如下 仔细看一下报错路径,显示的是null\bin\winutils.exe 而我的winutils已经下载下来并且复制到bin目录 ...

  7. 源码追踪,解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题

    在windows系统本地运行spark的wordcount程序,会出现一个异常,但不影响现有程序运行. >>提君博客原创  http://www.cnblogs.com/tijun/  & ...

  8. bug-hadoop:Could not locate executable null\bin\winutils.exe in the Hadoop binaries

    原因:缺少winutils.exe程序 Hadoop都是运行在Linux系统下的,在windows下eclipse中运行mapreduce程序,要首先安装Windows下运行的支持插件 下载: htt ...

  9. 【收藏】Hadoop解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题

    https://www.cnblogs.com/tijun/p/7567664.html

最新文章

  1. 【管理心得之一】不要用“可有可无”的事,挑战他人对这件事的原则和底线...
  2. ios12关闭设置角标_iOS 12.4 正式推送,一键换机功能上线!
  3. 为什么我们喜欢用 sigmoid 这类 S 型非线性变换?
  4. rman-incarnation
  5. 五一扣球练习2021-05-01
  6. 基于websocket的聊天实现逻辑(springboot)
  7. AFNetworking请求提示Invalid parameter not satisfying: URLString
  8. 马斯克为何不惜激怒众“韭菜”?
  9. ASP.NET基础之HttpContext学习
  10. Linux系统管理(3)——防火墙 iptables基本原理 四表五链 NetFilter 概述
  11. 人事档案管理系统介绍(二)
  12. Ubunt sudo免密码输入
  13. JDK 下载和安装教程
  14. 云课堂智慧职教网页版登录入口_智慧职教云课堂登录
  15. 《非暴力沟通》- 使人情意相通的沟通方式
  16. linux 密码字典生成,Linux下的字典生成工具Crunch 创造自己的专属字典
  17. 速看四川省企业技术中心拟认定名单已发布,共181家
  18. 软件更新(2005.06.04)
  19. 《算法设计与分析》期末复习精简版
  20. 图扑软件与华为云共同构建新型智慧工厂

热门文章

  1. iOS常用的存储方式介绍
  2. Dev控件GridControl 的使用
  3. linux下./xx做了什么?
  4. RTT线程管理篇——启动调度器函数
  5. 贪心算法—区间调度 电影节(POJ 4151)
  6. 5-10年的DBA如何独当一面?这10个建议送给你(附图书工具推荐)
  7. MongoDB:有人敢像我一样说出开源的真实用意吗?
  8. 今日头条架构演进之路——高压下的架构演进专题
  9. 分而治之:Oracle 18c 及 12.2 分区新特性的 N 种优化实践(含PPT)
  10. 实践解析可视化开发平台FlinkSever优势