连接hadoop java.io.IOException:Could not locate executable null\bin\winutils.exe in the Hadoop binarie
java連接hadoop報錯
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
原因查找
找到報錯位置hadoop包中的xxx/Shell.java
public static final String getQualifiedBinPath(String executable) throws IOException {// construct hadoop bin path to the specified executableString 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(); }發現需要HADOOP_HOME_DIR變量
private static String HADOOP_HOME_DIR = checkHadoopHome(); private static String checkHadoopHome() {// first check the Dflag hadoop.home.dir with JVM scopeString home = System.getProperty("hadoop.home.dir");// fall back to the system/user-global env variableif (home == null) {home = System.getenv("HADOOP_HOME");} ……return home; }?
再次查找發現通過System.getProperty("hadoop.home.dir")或者環境變量HADOOP_HOME獲取
故兩種處理方式
1.直接設置屬性System.setProperty("hadoop.home.dir", "D:\\Program\\hadoop-common-2.6.0-bin-master");
2.設置環境變量HADOOP_HOME
下載winutils地址https://github.com/srccodes/hadoop-common-2.2.0-bin下載解壓
或者新版的https://github.com/amihalik/hadoop-common-2.6.0-bin
……感謝兩位的編譯
?
配置環境變量
增加用戶變量HADOOP_HOME,值是下載的zip包解壓的目錄,然后在系統變量path里增加%HADOOP_HOME%\bin 即可?! ?/p>
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的连接hadoop java.io.IOException:Could not locate executable null\bin\winutils.exe in the Hadoop binarie的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Luogu 4721 【模板】分治 FF
- 下一篇: django 中使用 channels