Zapis do HDFS może być replikowany tylko do 0 węzłów zamiast minreplikacji (=1)

Mam uruchomione 3 węzły danych, podczas uruchamiania zadania dostaję następujący błąd podany poniżej,

Java.io. IOException: File/user/ashsshar/olhcache / loaderMap9b663bd9 może być replikowany tylko do 0 węzłów zamiast minreplikacji (=1). Istnieją 3 uruchomione datanody i 3 węzły są wyłączone w tej operacji. w org.Apacz.hadoop.hdfs.serwer.blockmanagement.BlockManager.chooseTarget (BlockManager.java:1325)

Ten błąd głównie pojawia się, gdy nasze instancje DataNode skończyły się lub jeśli Datanody nie są uruchomione. Próbowałem ponownie uruchomić Datanody, ale nadal otrzymuję ten sam błąd.

Dfsadmin-raporty w moich węzłach klastra wyraźnie pokazują, że dużo miejsca jest dostępne.

Nie jestem pewien, dlaczego tak się dzieje.

Author: Ashish Sharma, 2013-03-22

8 answers

1.Zatrzymaj wszystkie demony Hadoop

for x in `cd /etc/init.d ; ls hadoop*` ; do sudo service $x stop ; done

2.Usuń wszystkie pliki z /var/lib/hadoop-hdfs/cache/hdfs/dfs/name

Eg: devan@Devan-PC:~$ sudo rm -r /var/lib/hadoop-hdfs/cache/

3.Nazwa Formatu

sudo -u hdfs hdfs namenode -format

4.Start wszystkie demony Hadoop

for x in `cd /etc/init.d ; ls hadoop*` ; do sudo service $x start ; done

Zatrzymaj Wszystkie Usługi Hadoop

 14
Author: Devan M S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-22 17:18:25

Miałem ten sam problem, miałem bardzo mało miejsca na dysku. Uwolnienie dysku rozwiązało problem.

 12
Author: divyaravi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-06 18:04:36
  1. Sprawdź czy Twój DataNode jest uruchomiony, użyj polecenia: jps.
  2. jeśli jest nie działa poczekaj chwilę i spróbuj ponownie.
  3. Jeśli to działa, myślę, że musisz ponownie sformatować swój DataNode.
 2
Author: twlkyao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-14 08:59:42

To, co zwykle robię, gdy tak się dzieje, to przechodzę do katalogu TMP/hadoop-username/DFS/ i ręcznie usuwam foldery data i name (zakładając, że działasz w środowisku Linux).

Następnie sformatuj dfs, wywołując bin / hadoop namenode-format (Upewnij się, że odpowiesz wielką Y, gdy zostaniesz zapytany, czy chcesz sformatować; jeśli nie zostaniesz zapytany, uruchom ponownie polecenie).

Możesz ponownie uruchomić hadoop przez wywołanie bin/start-all.sh

 1
Author: lvella,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-22 13:46:31

Miałem ten problem i rozwiązałem go jak poniżej:

  1. Znajdź gdzie są zapisane metadane/dane datanode i namenode; jeśli nie możesz go znaleźć, po prostu wykonaj to polecenie na komputerze mac, aby je znaleźć (znajdują się w folderze o nazwie "tmp")

    Find / usr / local/ Cellar / - name "tmp";

    Polecenie Find wygląda tak: find - nazwa

  2. Po znalezieniu tego pliku, cd do to. /usr/local/Cellar//hadoop/hdfs / tmp

    Następnie cd do dfs

    Następnie używając polecenia-ls sprawdź, czy znajdują się tam katalogi danych i nazw.

  3. Używając polecenia Usuń, Usuń oba:

    DANE Rm-R. i nazwa rm-R

  4. Przejdź do folderu bin i zakończ wszystko, jeśli jeszcze tego nie zrobiłeś:

    Sbin/end-dfs.sh

  5. Wyjście z serwera lub localhost.

  6. Zaloguj się do serwer ponownie: ssh

  7. Uruchom dfs:

    Sbin/start-dfs.sh

  8. Sformatuj namenode dla pewności:

    Bin / hdfs namenode-format

  9. Możesz teraz używać poleceń hdfs do przesyłania danych do dfs i uruchamiania zadań MapReduce.

 1
Author: Reihan_amn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-20 03:39:09

W moim przypadku problem ten został rozwiązany poprzez otwarcie portu firewall na 50010 na datanodach.

 1
Author: fracca,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-28 10:27:53

Bardzo prosta poprawka dla tego samego problemu w systemie Windows 8.1
Użyłem systemu operacyjnego Windows 8.1 i Hadoop 2.7.2, zrobiłem następujące rzeczy, aby rozwiązać ten problem.

  1. Kiedy uruchomiłem format HDFS namenode, zauważyłem, że w moim katalogu jest blokada. proszę zapoznać się z poniższym rysunkiem.
    HadoopNameNode
  2. raz usunąłem pełny folder, jak pokazano poniżej, i ponownie zrobiłem Format HDFS namenode-format. Lokalizacja folderu
    Usuń Cały Folder
  3. Po wykonaniu powyżej dwóch kroków mogę z powodzeniem umieścić wymagane pliki w systemie HDFS. Użyłem start-all.cmd polecenie uruchamiające yarn i namenode.
 0
Author: Praveen Kumar K S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-17 13:58:28

W moim przypadku dfs.datanode.du.zarezerwowane na stronie hdfs.xml był zbyt duży, jak również nazwa węzła dającego prywatny adres ip węzła danych, więc nie mógł prawidłowo kierować. Rozwiązaniem dla prywatnego adresu ip było przełączenie kontenera dokera na sieć hosta i umieszczenie nazwy hosta we właściwościach hosta plików konfiguracyjnych.

To przerasta inne możliwości pytanie o replikację

 0
Author: SparkleGoat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-15 16:51:08