Подтвердить что ты не робот

Не удалось найти двоичный файл winutils в двоичном пути hadoop

Я получаю следующую ошибку при запуске namenode для последней версии hadoop-2.2. Я не нашел exe файл winutils в папке bin-bin. Я попытался выполнить команды

$ bin/hdfs namenode -format
$ sbin/yarn-daemon.sh start resourcemanager

ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - 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:278)
    at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:863)
4b9b3361

Ответ 1

Простое решение: Загрузите его с здесь и добавьте в $HADOOP_HOME/bin

(Источник)

ВАЖНОЕ ОБНОВЛЕНИЕ:

Для hadoop-2.6.0 вы можете загрузить двоичные файлы из блога Titus Barik >>.

Мне нужно не только указать HADOOP_HOME на извлеченный каталог [path], но и предоставить системное свойство -Djava.library.path=[path]\bin для загрузки собственных библиотек (dll).

Ответ 2

Если мы непосредственно возьмем двоичное расписание релиза Apache Hadoop 2.2.0 и попробуем запустить его в Microsoft Windows, тогда мы столкнемся с ERROR util.Shell: Не удалось найти двоичный файл winutils в двоичном пути hadoop.

Двоичный дистрибутив версии Apache Hadoop 2.2.0 не содержит некоторых собственных компонентов Windows (например, winutils.exe, hadoop.dll и т.д.). Они необходимы (не обязательно) для запуска Hadoop в Windows.

Таким образом, вам нужно создать собственное бинарное дистрибутивное приложение windows из исходных кодов, следующих за файлом "BUILD.txt", расположенным внутри исходного дистрибутива hadoop. Вы можете следить за следующими сообщениями, а также пошаговое руководство со снимком экрана

Сборка, установка, настройка и запуск Apache Hadoop 2.2.0 в ОС Microsoft Windows

ERROR util.Shell: Не удалось найти двоичный файл winutils в двоичном пути hadoop

Ответ 3

Если вы столкнулись с этой проблемой при запуске автономного локального приложения с помощью Spark (т.е. после добавления spark-assembly-xxx-hadoopx.xxjar или зависимости от Maven для проекта), более простым решением было бы поместить winutils.exe(скачать с здесь) в "C:\winutil\bin". Затем вы можете добавить winutils.exe в домашний каталог hadoop, добавив следующую строку в код:

System.setProperty("hadoop.home.dir", "c:\\\winutil\\\")

Источник: нажмите здесь

Ответ 4

Утверждение java.io.IOException: Не удалось найти исполняемый файл null\bin\winutils.exe

объясняет, что нуль принимается при расширении или замене переменной среды. Если вы видите Source в Shell.Java в Common Package, вы обнаружите, что переменная HADOOP_HOME не получает значение, и вы получаете нуль вместо этого и, следовательно, ошибку.

Итак, для этого необходимо установить HADOOP_HOME или переменную hasoop.home.dir.

Надеюсь, что это поможет.

Спасибо, Камлешвар.

Ответ 5

Я столкнулся с этой проблемой при работе с Eclipse. В моем случае у меня была правильная версия Hadoop, загруженная (hadoop-2.5.0-cdh5.3.0.tgz), я извлек содержимое и поместил его прямо в свой диск C. Затем я пошел в

Eclipse- > Debug/Run Configurations → Environment (вкладка) → и добавлены

variable: HADOOP_HOME

Значение: C:\hadoop-2.5.0-cdh5.3.0

Ответ 7

Winutils.exe используется для запуска команд оболочки для SPARK. Когда вам нужно запустить Spark без установки Hadoop, вам нужен этот файл.

Шаги следующие:

  1. Загрузите файл winutils.exe из следующей папки для hadoop 2.7.1 https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin [ПРИМЕЧАНИЕ: Если вы используете отдельную версию hadoop, пожалуйста, загрузите winutils из соответствующей папки версии hadoop на GITHUB из папки, указанной выше.]

  2. Теперь создайте папку "winutils" на диске C: \. Теперь создайте папку "bin" внутри папки "winutils" и скопируйте файл winutils.exe в эту папку. Таким образом, местоположение файла winutils.exe будет C:\winutils\bin\winutils.exe

  3. .Теперь откройте переменную окружения и установите HADOOP_HOME = C:\winutil [ПРИМЕЧАНИЕ: Не добавляйте \bin в HADOOP_HOME и нет необходимости устанавливать HADOOP_HOME в пути]

Ваша проблема должна быть решена !!

Ответ 8

winutils.exe требуется, чтобы hadoop выполнял команды, связанные с командой. загрузите hasoop-common-2.2.0 zip файл. winutils.exe можно найти в папке bin. Извлеките zip файл и скопируйте его в локальную папку hadoop/bin.

Ответ 9

У меня была та же проблема. Удаление bin\ с пути HADOOP_HOME разрешило это для меня. Путь к переменной HADOOP_HOME должен выглядеть примерно так.

C:\dev\hadoop2.6\

Может потребоваться перезагрузка системы. В моем случае достаточно повторного запуска IDE.

Ответ 10

Настройте переменную HADOOP_HOME в Windows для решения проблемы.

Вы можете найти ответ в org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/apache/hadoop/util/Shell.java:

IOException из

  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();
  }

HADOOP_HOME_DIR из

// 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");
}

Ответ 11

  1. Скачать [winutils.exe]
    С URL:
    https://github.com/steveloughran/winutils/hadoop- version/bin
  2. Прошлое в HADOOP_HOME/bin
    Примечание: вы должны установить переменные среды:
    Пользовательская переменная:
    Переменная: HADOOP_HOME
    Значение: Hadoop или spark dir

Ответ 12

В Pyspark для запуска локального спарк-приложения с использованием Pycharm используйте строки ниже

os.environ['HADOOP_HOME'] = "C:\\winutils"
print os.environ['HADOOP_HOME']

Ответ 13

Я получал ту же проблему в окнах. Я исправил его

  • Загрузка hasoop-common-2.2.0-bin-master из ссылка.
  • Создайте переменную пользователя HADOOP_HOME в переменной среды и назначьте путь к каталогу bino-common bin как значение.
  • Вы можете проверить это, выполнив команду hasoop в cmd.
  • Перезапустите среду IDE и запустите ее.

Ответ 14

Загрузите нужную версию папки hadoop (скажем, если вы устанавливаете spark в Windows, а затем версию hadoop, для которой создана ваша искра) по этой ссылке в формате zip.

Распакуйте zip в нужный каталог. Вам нужно иметь каталог в форме hadoop\bin (явно создайте такую структуру каталогов hadoop\bin если хотите) с bin содержащим все файлы, содержащиеся в папке bin загруженного hadoop. Это будет содержать много файлов, таких как hdfs.dll, hadoop.dll и т.д. В дополнение к winutil.exe.

Теперь создайте переменную окружения HADOOP_HOME и установите ее в <path-to-hadoop-folder>\hadoop. Затем добавьте ;%HADOOP_HOME%\bin; PATH среды PATH.

Откройте "новую командную строку" и попробуйте повторить команду.

Ответ 15

Я использовал версии "hbase-1.3.0" и "hadoop-2.7.3". Установка переменной среды HADOOP_HOME и копирование файла winutils.exe в папке HADOOP_HOME/bin решает проблему на окнах os. Внимание для установки среды HADOOP_HOME в папку установки hadoop (папка/bin не требуется для этих версий). Кроме того, я предпочел использовать кросс-платформенный инструмент cygwin, чтобы установить функциональность linux os (насколько это возможно), потому что команда Hbase рекомендует linux/unix env.