Słyszałem o wielu narzędziach / frameworkach pomagających ludziom przetwarzać dane (środowisko big data).
Jeden nazywa się Hadoop, a drugi to koncepcja noSQL. Jaka jest różnica w punkcie przetwarzania?
Czy się uzupełniają?
Komentarze
- Odrzucono z powodu braku wysiłku badawczego. Hadoop i noSQL są dobrze zdefiniowane gdzie indziej.
- @Spacedman Zgadzam się, ale to był przykład pytania z obszaru51 , gdyby tak było nie usunięte, zanim wydaje mi się, że jest prawidłowe, i nawet ja znałem odpowiedź, kiedy publikowałem pytanie (przynajmniej ogólnie).
Odpowiedź
Hadoop nie jest bazą danych , hadoop to cały ekosystem.
Większość ludzi będzie odnosić się do zleceń mapreduce , mówiąc o hadoopach . Zadanie mapreduce dzieli duże zbiory danych na małe porcje danych i rozprowadza je w klastrze węzłów, aby kontynuować. W końcu wynik z każdego węzła zostanie ponownie złożony jako jeden zbiór danych.
Załóżmy, że ładujesz do hadoopa zestaw <String, Integer>
z populacją niektórych dzielnic w mieście i chcesz uzyskać średnią populację dla wszystkich dzielnic każdego miasta (rysunek 1).
rysunek 1
[new york, 40394] [new york, 134] [la, 44] [la, 647] ...
Teraz hadoop najpierw zamapuje każdą wartość za pomocą klawiszy (rysunek 2)
rysunek 2
[new york, [40394,134]] [la, [44,647]] ...
Po mapowaniu zmniejszy wartości każdego klucza do nowej wartości (w tym przykładzie średnia z zestawu wartości każdego klucza) (rysunek 3)
rysunek 3
[new york, [20264]] [la, [346]] ...
teraz hadoop byłby zrobiony ze wszystkim. Możesz teraz załadować wynik do HDFS ( rozproszony system plików hadoop) lub do dowolnego DBMS lub pliku.
To tylko jeden bardzo podstawowy i proste ex wiele tego, co potrafi hadoop. W hadoopie można wykonywać znacznie bardziej skomplikowane zadania.
Jak już wspomniałeś w swoim pytaniu, hadoop i noSQL uzupełniają się. Znam kilka konfiguracji, w których np. Miliardy zestawów danych z czujników są przechowywane w HBase i przechodzą przez hadoop, aby ostatecznie zostać zapisane w DBMS.
Odpowiedź
NoSQL to sposób przechowywania danych, który nie wymaga żadnego rodzaju relacji. Prostota jego projektu i możliwość skalowania w poziomie, jednym ze sposobów przechowywania danych jest projekt pary key : value
. To nadaje się do przetwarzania podobnego do Hadoop. Użycie bazy danych NoSQL naprawdę zależy od typu problemu.
Oto dobry link do Wikipedii NoSQL
Hadoop to system przeznaczony do przechowywania i przetwarzania ogromnych porcji danych. Jest to rozproszony system plików dfs. Powodem tego jest to, że w swoim projekcie przyjmuje założenie, że awarie sprzętu są powszechne, tworząc w ten sposób wiele kopii tej samej informacji i rozprzestrzeniając ją na wiele maszyn i szaf, więc jeśli jedna z nich się zepsuje, nie ma problemu, my mieć jeszcze dwie kopie. Oto świetny link do Hadoop z Wikipedii. Zobaczysz, że moim zdaniem jest to coś więcej niż tylko przechowywanie, ale także przetwarzanie: Hadoop