2013-07-03 18 views
6

Ok .. Próbowałem przeszukać stronę i tę stronę, aby uzyskać odpowiedź na to pytanie, która wydaje się być bardzo podstawowym pytaniem. Jestem kompletnym noobem do przetwarzania dużych ilości danych.Relacje między Hadoop a bazami danych

Chcę poznać związek między HDFS i bazami danych. Czy zawsze jest konieczne, aby używać HDFS, dane będą w pewnym formacie NoSQL? Czy istnieje specjalna baza danych, która zawsze jest dołączana podczas korzystania z HDFS? Wiem, że Cloudera oferuje rozwiązania Hadoop i używają HBase.

Czy mogę używać relacyjnej bazy danych jako macierzystej bazy danych dla Hadoop?

Odpowiedz

0

Zaletą Hadoop jest możliwość przechowywania danych za pomocą replikacji, więc nie można pozwolić Hadoop "pracować", powiedzmy, SQL Server, ani nie miałoby to większego sensu. Istnieją środowiska HBase, Hive i Pig (i inne), które można skonfigurować do pracy z Hadoop, i wyglądają i czują się jak zwykłe języki SQL. Sprawdź, czy chcesz mieć coś do odegrania, jak mówią, od 0 do Big Data w 15 minut. Mam nadzieję że to pomoże.

+0

Pomaga. Dziękuję Ci. Nie brałem pod uwagę, że Hadoop replikuje dane - więc tak, to sprawia, że ​​baza danych SQL jest niekompatybilna jako natywna baza danych, jak sądzę. – crossvalidator

1

Co naprawdę chcesz osiągnąć, nie wynika to z twojego pytania.

Istnieje jedynie pośrednia zależność między HDFS a bazą danych. HDFS to system plików, a nie baza danych. Hadoop to połączenie struktury przetwarzania równoległego (MapReduce) i systemu plików HDFS. Struktura przetwarzania równoległego pobiera porcje danych z systemu plików HDFS za pomocą funkcji o nazwie i InputFormat. Niektóre bazy danych, takie jak: baza danych Oracle NoSQL (ONDB), Cassandra, Riak, inne mają możliwość zwrócenia InputFormat zawierającego ich dane, aby mogły uczestniczyć jako źródło do przetwarzania MapReduce, podobnie jak dane z HDFS.

Więc znowu, co chcesz zrobić?

Hadoop i HDFS są ogólnie przydatne, gdy masz dużą ilość danych, które nie zostały jeszcze zagregowane i/lub ustrukturyzowane do modelu potrzebnego do przetwarzania na wyższym poziomie. Czasami (choć wymuszony jest to częściej niż naprawdę konieczne), Hadoop może być używany do przetwarzania na wyższym poziomie, który normalnie byłby wykonywany w innej technologii przetwarzania/przechowywania, która wykorzystuje przyzwoity model. Pomyśl o wyszukiwaniu dynamicznym Google, tworzenie indeksu wyszukiwania uruchomiono w MapReduce, a następnie opracowali model, a teraz używają lepszej metody. Nie można zrobić natychmiastowego wyszukiwania Google w MapReduce.

+0

Naprawdę chcę tylko wiedzieć, jaki rodzaj baz danych może być bezpośrednio używany z Hadoop, tj. Bez żadnych programów łączących, które mogą zmienić format danych. Zasadniczo nie rozumiem, dlaczego istnieje SQOOP. Dlaczego nie możemy bezpośrednio użyć danych SQL na Hadoop. Jak zauważył doktor Dan, replikacja danych nie byłaby możliwa z SQL. Zastanawiam się, czy są jakieś inne problemy? – crossvalidator

+0

@crossvalidator: Zobacz edytowaną odpowiedź w odpowiedzi na ten komentarz. Nie można było tutaj napisać tego. – Tariq

12
I want to know the relationship between HDFS and databases. 

Nie ma relation jako takie między 2. Jeśli nadal chcesz znaleźć jakieś podobieństwa, jedyną rzeczą, która jest wspólna między 2 jest przepis store danych. Jest to jednak analogiczne do kombinacji FS i DB. Na przykład MySQL i ext3. Mówisz, że przechowujesz dane w MySQL, ale ostatecznie twoje dane są zapisywane na twoim FS. Zazwyczaj użytkownicy korzystają z baz NoSQL, takich jak HBase, na klastrze Hadoop, aby wykorzystać równoległość i rozproszone zachowanie zapewniane przez HDFS.

Is it always necessary that to use HDFS, the data be in a some NoSQL format? 

Tak naprawdę nie ma to jak NoSQL format. Można użyć HDFS dla każdego rodzaju danych, tekstu, dwójkowy, XML itp itd

Is there a specific database that always comes attached when using HDFS? 

nr Jedyną rzeczą, która przychodzi w połączeniu z HDFS jest MapReduce framework. Można oczywiście utworzyć bazę danych do pracy z HDFS. Ludzie często korzystają z NoSQL DB na HDFS. Istnieje kilka opcji, takich jak Cassandra, HBase itp. To jest całkowicie do wyboru, którego z nich użyć.

Can I use a relational database as the native database for Hadoop? 

Nie ma funkcji OOTB, która to umożliwia.Ponadto nie ma większego sensu używanie RDBMS z Hadoop. Hadoop został opracowany na czas, gdy RDBMS nie jest odpowiednią opcją, jak obsługa PBs danych, obsługa niestrukturalnych danych itp. Powiedziawszy to, nie możesz myśleć o Hadoop jako zamiennik RDBMB. Oba mają zupełnie inne cele.

Edycja:

Normalnie ludzie użyciu NoSQL DB (jak HBase, Kasandryjską) z Hadoop. Używanie tych DB z hadoop jest tylko kwestią konfiguracji. Nie potrzebujesz żadnego programu łączącego, aby to osiągnąć. Oprócz kwestii stworzonej przez @Doctor Dan, istnieje kilka innych powodów, dla których warto wybrać DB NoSQL zamiast DB SQL. Jedna rzecz to size. Te bazy danych NoSQL zapewniały dużą poziomą skalibilność, która umożliwia łatwe przechowywanie danych PB. Można skalować tradycyjne systemy, ale w pionie. Innym powodem jest complexity danych. Miejsca, w których używane są te bazy danych, obsługują w większości wysoce nieustrukturyzowane dane, co nie jest łatwe w obsłudze tradycyjnych systemów. Na przykład dane czujników, dane dziennika itp.

Zasadniczo nie rozumiem, dlaczego istnieje SQOOP. Dlaczego nie możemy bezpośrednio użyć danych SQL na Hadoop, używając .

Chociaż Hadoop jest bardzo dobry w obsłudze Twoich potrzeb BigData, nie jest rozwiązaniem wszystkich Twoich potrzeb. Nie nadaje się do potrzeb w czasie rzeczywistym. Załóżmy, że jesteś firmą zajmującą się transakcjami online z bardzo dużym zbiorem danych. Dowiesz się, że możesz przetwarzać te dane bardzo łatwo za pomocą Hadoop. Problem polega jednak na tym, że nie możesz zaspokajać potrzeb klientów w czasie rzeczywistym za pomocą Hadoop. Tutaj pojawia się SQOOP. Jest to narzędzie importu/eksportu, które umożliwia przenoszenie danych między SQL DB i Hadoop. Możesz przenieść BigData do swojego klastra Hadoop, przetworzyć go tam, a następnie przekazać wyniki z powrotem do SQL DB przy użyciu SQOOP, aby zaspokajać potrzeby klientów w czasie rzeczywistym.

HTH

+1

Bardzo ładne wyjaśnienie ... nie wiem, dlaczego użytkownik nie zaakceptował tego jako odpowiedzi .. w każdym razie +1 :) – Trialcoder

Powiązane problemy