2012-10-25 12 views
5

skonfigurować i skonfigurowane sudo węzła środowiska Hadoop na Ubuntu 12.04 LTS stosując poniższy poradnik http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#formatting-the-hdfs-filesystem-via-the-namenodeDatanode braku w Hadoop na pojedynczej maszynie

Po wpisaniu Hadoop/bin $ start-all.sh wszystko będzie w porządku Potem sprawdził Jps następnie NameNode, JobTracker, TaskTracker, SecondaryNode zostały rozpoczęte, ale DataNode nie zaczęło ...

Jeżeli którykolwiek wie jak rozwiązać ten problem, proszę dać mi znać ..

Odpowiedz

3

ya postanowiłem go ...

java.io.IOException: Niezgodne namespaceIDs

Jeżeli zobaczyć java.io.IOException błędzie: Niezgodna namespaceIDs w dziennikach o DataNode (dzienniki/Hadoop-hduser-datanode-.log), są szanse, jesteś dotknięty problemem HDFS-107 (wcześniej znanym jako HADOOP-1212).

Pełne błąd wyglądało to na moich maszynach: ... Błąd org.apache.hadoop.dfs.DataNode: java.io.IOException: Niezgodna namespaceIDs w/app/Hadoop/tmp/DFS/data: namenode namespaceID = 308967713; datanode namespaceID = 113030094 w org.apache.hadoop.dfs.DataStorage.doTransition (DataStorage.java:281) w org.apache.hadoop.dfs.DataStorage.recoverTransitionRead (DataStorage.java:121) at org.apache. hadoop.dfs.DataNode.startDataNode (DataNode.java:230) at org.apache.hadoop.dfs.DataNode. (DataNode.java:199) at org.apache.hadoop.dfs.DataNode.makeInstance (DataNode.java : 1202) w org.apache.hadoop.dfs.DataNode.run (DataNode.java:1146) w org.apache.hadoop.dfs.DataNode.createDataNode (DataNode.java:1167) at org.apache.hadoop .dfs.DataNode.main (DataNode.java:1326) W tej chwili wydaje się, że istnieją dwa obejścia opisane poniżej.

Obejście 1: Rozpocznij od zera Mogę poświadczyć, że poniższe kroki rozwiązują ten błąd, ale efekty uboczne nie sprawią, że będziesz zadowolony (ja też nie). Znaleziono następujące obejście problemu:

Zatrzymaj klaster Usuń katalog danych na problematycznym węźle DataNode: katalog jest określony przez dfs.data.dir w conf/hdfs-site.xml; jeśli postępowałeś zgodnie z tym samouczkiem, odpowiednim katalogiem jest/app/hadoop/tmp/dfs/data Ponownie sformatuj nazwęNazwa (UWAGA: wszystkie dane HDFS zostaną utracone podczas tego procesu!) Zrestartuj klaster Po usunięciu wszystkich danych HDFS i uruchomieniu od zera nie brzmi jak dobry pomysł (może być ok podczas początkowej konfiguracji/testowania), możesz spróbować drugiego podejścia.

Obejście 2: Aktualizacja identyfikatora przestrzeni nazw problematycznych DataNodes Wielkie dzięki dla Jareda Stehlera za następującą sugestię. Nie testowałem jeszcze tego, ale nie krępuj się wypróbować i wyślij mi swoją opinię.To rozwiązanie jest „minimalnie inwazyjne”, jak masz tylko edytować jeden plik na problematycznych DataNodes:

Zatrzymaj DataNode Edit wartość namespaceID w/prąd/WERSJA pasujące do wartości bieżącej NameNode Zrestartuj DataNode Jeśli zalecenia z moich tutoriali, pełna ścieżka odpowiednich plików są:

NameNode:/app/Hadoop/tmp/DFS/nazwa/prąd/WERSJA DataNode: DFS/app/Hadoop/tmp// data/current/VERSION (tło: dfs.data.dir jest domyślnie ustawione na $ {hadoop.tmp.dir}/dfs/data, a my ustawiliśmy hadoop.tmp.dir w tym samouczku do/app/hadoop/tmp).

Rozwiązaniem problemu jest wyraźnie podane w poniższej stronie:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#java-io-ioexception-incompatible-namespaceids

+0

Czy dowiedzieć się, co było powodem? Sam ten błąd wystąpił podczas zmiany parametrów dfs. * W pliku hdfs-site.xml. Czy obowiązuje ogólna zasada? Czy można temu zapobiec? – rretzbach

+0

@rretzbach to żaden problem, jeśli instalujesz HDFS, musisz go najpierw sformatować. Podobnie jak twardy dysk. Nie instaluj na partycji tmp, ponieważ będzie ona wymazywana przy każdym ponownym uruchomieniu, więc musisz za każdym razem ponownie sformatować swój identyfikator. –