Otrzymuję następujący błąd podczas uruchamiania namenode dla najnowszej wersji Hadoop-2.2. Nie znalazłem pliku winutils exe w folderze bin Hadoop. Wypróbowałem poniższe polecenia
$ 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)
Odpowiedzi:
Proste rozwiązanie: pobierz go stąd i dodaj do
$HADOOP_HOME/bin
( Źródło )
WAŻNA AKTUALIZACJA:
Dla hadoop-2.6.0 możesz pobrać binaria z bloga Titus Barik >> .
Musiałem nie tylko wskazać
HADOOP_HOME
wyodrębniony katalog[path]
, ale także podać właściwość systemową-Djava.library.path=[path]\bin
do załadowania natywnych bibliotek (dll).źródło
Jeśli napotkasz ten problem podczas uruchamiania samodzielnej aplikacji lokalnej ze Spark (tj. Po dodaniu do projektu spark-assembly-xxx-hadoopx.xxjar lub zależności Maven), prostszym rozwiązaniem byłoby umieszczenie winutils.exe (pobierz od tutaj ) w "C: \ winutil \ bin". Następnie możesz dodać winutils.exe do katalogu domowego Hadoop, dodając następujący wiersz do kodu:
Źródło: Kliknij tutaj
źródło
hadoop/bin/bin/
. Więc po prostu skopiujbin
folder winutils do folderu Hadoopbin
. (HADOOP_HOME
System.setProperty("hadoop.home.dir", "c:\\winutil\\")
Jeśli bezpośrednio weźmiemy binarną dystrybucję wydania Apache Hadoop 2.2.0 i spróbujemy uruchomić ją w systemie Microsoft Windows, napotkamy ERROR util.Shell: Nie udało się zlokalizować pliku binarnego winutils w ścieżce binarnej Hadoop.
Binarna dystrybucja wydania Apache Hadoop 2.2.0 nie zawiera niektórych natywnych komponentów systemu Windows (takich jak winutils.exe, hadoop.dll itp.). Są one wymagane (nie opcjonalne) do uruchomienia Hadoop w systemie Windows.
Musisz więc zbudować natywną dystrybucję binarną hadoopa dla systemu Windows z kodów źródłowych po pliku „BUILD.txt” znajdującym się w źródłowej dystrybucji hadoop. Możesz również śledzić następujące posty, aby uzyskać przewodnik krok po kroku ze zrzutem ekranu
Twórz, instaluj, konfiguruj i uruchamiaj Apache Hadoop 2.2.0 w systemie operacyjnym Microsoft Windows
ERROR util.Shell: nie można zlokalizować pliku binarnego Winutils w ścieżce binarnej Hadoop
źródło
Instrukcja java.io.IOException: nie można zlokalizować pliku wykonywalnego null \ bin \ winutils.exe
wyjaśnia, że wartość null jest uzyskiwana podczas rozszerzania lub zastępowania zmiennej środowiskowej. Jeśli zobaczysz źródło w Shell.Java we wspólnym pakiecie, zauważysz, że zmienna HADOOP_HOME nie jest ustawiana i zamiast tego otrzymujesz wartość null, a zatem błąd.
Tak więc, HADOOP_HOME musi być odpowiednio ustawione lub właściwość zmiennej hadoop.home.dir.
Mam nadzieję że to pomoże.
Dzięki, Kamleshwar.
źródło
Winutils.exe służy do uruchamiania poleceń powłoki dla SPARK. Jeśli chcesz uruchomić Spark'a bez instalowania Hadoop, potrzebujesz tego pliku.
Kroki są następujące:
Pobierz plik winutils.exe z następującej lokalizacji dla hadoop 2.7.1 https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin [UWAGA: Jeśli używasz oddzielnej wersji hadoop, pobierz winutils z odpowiedniego folderu wersji hadoop na GITHUB z lokalizacji, jak wspomniano powyżej.]
Teraz utwórz folder „winutils” na dysku C: \. Teraz utwórz folder „bin” w folderze „winutils” i skopiuj plik winutils.exe do tego folderu. Więc lokalizacja winutils.exe będzie C: \ winutils \ bin \ winutils.exe
Teraz otwórz zmienną środowiskową i ustaw HADOOP_HOME = C: \ winutils [UWAGA: Proszę nie dodawać \ bin do HADOOP_HOME i nie trzeba ustawiać HADOOP_HOME w ścieżce]
Twój problem musi zostać rozwiązany !!
źródło
Właśnie napotkałem ten problem podczas pracy z Eclipse. W moim przypadku pobrałem poprawną wersję Hadoop (hadoop-2.5.0-cdh5.3.0.tgz), rozpakowałem zawartość i umieściłem ją bezpośrednio na moim dysku C. Potem poszedłem do
Eclipse-> Debug / Run Configurations -> Environment (tab) -> i dodane
zmienna: HADOOP_HOME
Wartość: C: \ hadoop-2.5.0-cdh5.3.0
źródło
Możesz pobrać winutils.exe tutaj: http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
Następnie skopiuj go do swojego
HADOOP_HOME/bin
katalogu.źródło
W Pyspark, aby uruchomić lokalną aplikację Spark przy użyciu Pycharm użyj poniższych linii
źródło
Winutils.exe są wymagane, aby hadoop mógł wykonywać polecenia związane z hadoop. pobierz plik zip hadoop-common-2.2.0. winutils.exe można znaleźć w folderze bin. Wyodrębnij plik zip i skopiuj go do lokalnego folderu hadoop / bin.
źródło
Miałem ten sam problem. Usunięcie
bin\
ze ścieżki HADOOP_HOME rozwiązało to za mnie. Ścieżka do zmiennej HADOOP_HOME powinna wyglądać mniej więcej tak.Może być konieczne ponowne uruchomienie systemu. W moim przypadku wystarczyło zrestartowanie IDE.
źródło
Ustaw zmienną HADOOP_HOME w systemie Windows, aby rozwiązać problem.
Odpowiedź znajdziesz w
org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/apache/hadoop/util/Shell.java
:IOException z
HADOOP_HOME_DIR z
źródło
z adresu URL:
https://github.com/steveloughran/winutils/hadoop-
version
/ binUwaga: Powinieneś ustawić zmienne środowiskowe:
Zmienna użytkownika:
Zmienna : HADOOP_HOME
Wartość : Hadoop lub spark dir
źródło
Otrzymałem ten sam problem w systemie Windows. Naprawiłem to przez
źródło
Pobierz żądaną wersję folderu Hadoop (powiedz, że instalujesz Spark w systemie Windows, a następnie wersję Hadoop, dla której jest zbudowany Twój Spark) z tego łącza jako plik zip.
Rozpakuj plik zip do żądanego katalogu. Musisz mieć katalog formularza
hadoop\bin
(jawnie utwórz takąhadoop\bin
strukturę katalogów, jeśli chcesz)bin
zawierający wszystkie pliki zawarte wbin
folderze pobranego hadoopa. Będzie on zawierał wiele plików, takich jak hdfs.dll, hadoop.dll itp. Oprócz winutil.exe.Teraz utwórz zmienną środowiskową
HADOOP_HOME
i ustaw ją na<path-to-hadoop-folder>\hadoop
. Następnie dodać;%HADOOP_HOME%\bin;
doPATH
zmiennej środowiskowej.Otwórz „nowy wiersz polecenia” i spróbuj ponownie uruchomić polecenie.
źródło
Użyłem wersji "hbase-1.3.0" i "hadoop-2.7.3". Ustawienie zmiennej środowiskowej HADOOP_HOME i skopiowanie pliku „winutils.exe” do folderu HADOOP_HOME / bin rozwiązuje problem w systemie operacyjnym Windows. Uwaga, aby ustawić środowisko HADOOP_HOME na folder instalacyjny hadoop (folder / bin nie jest konieczny dla tych wersji). Dodatkowo wolałem używać narzędzia wieloplatformowego cygwin, aby ustawić funkcjonalność systemu Linux (tak jak to tylko możliwe), ponieważ zespół Hbase poleca linux / unix env.
źródło