Could not locate executable winutils.exe 2017-03-03 00:55

Today I got the error message like following.

ERROR [1502551983@qtp-1136115034-0] Shell.getWinUtilsPath(Shell.java:336) - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\winutils.exe in the Hadoop binaries.
    at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:318)
    at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:333)
    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:326)
    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
    at org.apache.hadoop.security.Groups.parseStaticMapping(Groups.java:93)
    at org.apache.hadoop.security.Groups.<init>(Groups.java:77)
    at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:240)
    at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:268)
    at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:235)
    at org.apache.hadoop.security.UserGroupInformation.isAuthenticationMethodEnabled(UserGroupInformation.java:322)
    at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:316)
    at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:759)
    at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:661)
    at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:289)
    at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:285)
    at org.apache.hadoop.hbase.security.User.getCurrent(User.java:187)
    at org.apache.hadoop.hbase.security.UserProvider.getCurrent(UserProvider.java:89)
    at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:235)
    at com.xiaomi.infra.hbase.client.InternalHBaseClient.createAndCacheConnection(InternalHBaseClient.java:122)
    at com.xiaomi.infra.hbase.client.InternalHBaseClient.getOrCreateConnection(InternalHBaseClient.java:111)
    at com.xiaomi.infra.hbase.client.InternalHBaseClient.getHTable(InternalHBaseClient.java:411)
    at com.xiaomi.infra.hbase.client.InternalHBaseClient.get(InternalHBaseClient.java:452)

I found the solution on stackoverflow.

  • Download winutils.exe here
  • Add HADOOP_HOME environment variable in your path.

The error message disappeared.