Не удалось найти двоичный файл 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)
Ответы
Ответ 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
Ответ 6
Вы можете скачать winutils.exe здесь:
http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
Затем скопируйте его в каталог HADOOP_HOME/bin
.
Ответ 7
Winutils.exe используется для запуска команд оболочки для SPARK.
Когда вам нужно запустить Spark без установки Hadoop, вам нужен этот файл.
Шаги следующие:
Загрузите файл winutils.exe из следующей папки для hadoop 2.7.1
https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin
[ПРИМЕЧАНИЕ: Если вы используете отдельную версию hadoop, пожалуйста, загрузите winutils из соответствующей папки версии hadoop на GITHUB из папки, указанной выше.]
Теперь создайте папку "winutils" на диске C: \. Теперь создайте папку "bin" внутри папки "winutils" и скопируйте файл winutils.exe в эту папку.
Таким образом, местоположение файла winutils.exe будет C:\winutils\bin\winutils.exe
.Теперь откройте переменную окружения и установите 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
- Скачать [winutils.exe]
С URL:
https://github.com/steveloughran/winutils/hadoop- version
/bin
- Прошлое в 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.