При запуске namenode для последнего релиза hadoop-2.2 я получаю следующую ошибку. Я не нашел файл winutils exe в папке hadoop 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)
Простое Решение: Скачать отсюда и добавить до$HADOOP_HOME/бин
(Источник)
ВАЖНОЕ ОБНОВЛЕНИЕ:
Для платформа Hadoop-2.6.0 вы можете загрузить файлы от Тит Барик блог >>.
У меня не только необходимо указать HADOOP_HOME в извлеченной папке [путь], но и обеспечит системное свойство
-Джава.библиотека.путь=[путь]\бин` загружать собственные библиотеки (DLL файлы).
Если мы возьмем бинарный дистрибутив Apache Hadoop версии 2.2.0 и попытаемся запустить его под Microsoft Windows, то столкнемся с ошибкой ERROR util.Shell: Не удалось найти двоичный файл winutils в пути к двоичному файлу hadoop.
Бинарный дистрибутив Apache Hadoop 2.2.0 не содержит некоторых компонентов для windows (таких как winutils.exe, hadoop.dll и т.д.). Они необходимы (а не опциональны) для запуска Hadoop под Windows.
Поэтому вам необходимо собрать бинарный дистрибутив hadoop для windows native из исходных кодов, следуя файлу "BUILD.txt", расположенному внутри исходного дистрибутива hadoop. Для получения пошагового руководства со снимками экрана вы можете прочесть следующие посты
Сборка, установка, настройка и запуск Apache Hadoop 2.2.0 в Microsoft Windows OS
ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path
Если вы сталкиваетесь с этой проблемой при запуске автономного местного применения с зажигания (т. е. после добавления spark-assembly-x.x.x-hadoopx.x.x.jar или с помощью Maven зависимостей для проекта), более простым решением будет поставить winutils.exe (скачать здесь) в "C:\winutil\bin". Затем можно добавить winutils.exe в домашний каталог Hadoop путем добавления следующей строки кода:
System.setProperty("hadoop.home.dir", "c:\\\winutil\\\")
Источник: Нажмите здесь
Заявление java.io.IOException: Не удалось обнаружить исполняемый файл null\bin\winutils.exe
объясняет, что null получен при расширении или замене переменной окружения. Если вы посмотрите исходный текст в Shell.Java в пакете Common, то обнаружите, что переменная HADOOP_HOME не устанавливается, и вместо нее вы получаете null, что и приводит к ошибке.
Таким образом, HADOOP_HOME должна быть установлена правильно или переменная hadoop.home.dir должна быть установлена правильно.
Надеюсь, это поможет.
Спасибо, Камлешвар.
Я просто столкнулся с этой проблемой при работе с Eclipse. В моем случае, я имел правильные версии Hadoop скачали (в Hadoop-2.5.0-cdh5.3.0.тгз), я извлек содержимое и поставил его прямо на моем диске C. Тогда я пошел к
Затмение-и GT;настройки -&отладки/запуска ГТ; окружающая среда (вкладка) -> и добавил
переменная: HADOOP_HOME
Значение: C:\hadoop-2.5.0-cdh5.3.0
Вы можете скачать winutils.exe здесь: http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
Затем скопировать его в каталог HADOOP_HOME/бин.
Winutils.exe используется для выполнения команд Shell для Искры. Когда вам нужно запустить искру без установки 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:. Теперь создайте папку 'бин' в папку 'winutils' и скопировать winutils.exe в этой папке. Итак, расположение winutils.exe будет C:\winutils\bin\winutils.exe
Теперь откройте переменной окружения и установить HADOOP_HOME=с:\winutil [Примечание: пожалуйста, не добавляйте \Бин в HADOOP_HOME и нет необходимости устанавливать HADOOP_HOME в путь]
Ваш вопрос должен быть решен !!
Я столкнулся с той же проблемой. Удаление бин\
от пути HADOOP_HOME решена она для меня. Путь для переменной HADOOP_HOME должна выглядеть.
C:\dev\hadoop2.6\
Перезагрузка системы может потребоваться. В моем случае перезапуск IDE был достаточным.
Настройка 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");
}
В Pyspark, для запуска местного применения свечи использовать Pycharm ниже линии
os.environ['HADOOP_HOME'] = "C:\\winutils"
print os.environ['HADOOP_HOME']
winutils.exe необходим hadoop для выполнения команд, связанных с hadoop. пожалуйста, скачайте zip-файл hadoop-common-2.2.0. winutils.exe находится в папке bin. Распакуйте zip-файл и скопируйте его в локальную папку hadoop/bin.
Я получаю ту же проблему в Windows. Я исправил это путем
Скачать нужную версию в папку с Hadoop (скажем, при установке зажигания на Windows, то версии Hadoop, для которой искру построен) из этого ссылку как молния.
Распакуйте архив в нужную директорию.
Вы должны иметь каталог форма в Hadoop\бин
(явно создать такие структуры каталогов в Hadoop\бин `если хотите) с "лотка", содержащий все файлы, содержащиеся в папке bin на скачанный в Hadoop. Это будет содержать много файлов, таких как hdfs.dll, hadoop.dll и т. д. в дополнение к winutil.exe.
Теперь создать variable среды HADOOP_HOME
и установите его в <путь к базе Hadoop-папку>\Hadoop с
. Тогда add;\HADOOP_HOME %%Бин;
на путь
переменной окружения.
Открыть "и новой командной строке" и попробуйте перезапустить команду.
Я использовал "и" и " в HBase-1.3.0;в Hadoop-2.7.3" по версии. Установка HADOOP_HOME переменных окружения и копирование 'winutils.ехе' файл в папке HADOOP_HOME/Бин решает проблему на ОС Windows. Внимание для установки среды HADOOP_HOME в каталог установки платформы Hadoop (папку/bin не надо для этих версий). Кроме того, я предпочитал использовать кросс-платформенный инструмент программа, чтобы урегулировать функциональность ОС Linux (как можно раньше), потому что команда в HBase рекомендую Linux и Unix ОКР.