2012-02-22 26 views
8

Posiadamy duży sklep z dokumentami, który obecnie ma pojemność 3 TB w przestrzeni i zwiększa się o 1 TB co sześć miesięcy. Obecnie są przechowywane w systemie plików Windows, który czasami powodował problemy w zakresie dostępu i pobierania. Szukamy możliwości skorzystania z bazy danych magazynu dokumentów Haddop. Czy dobrym pomysłem jest pójście z Haddopem? Ktoś ma jakikolwiek kontakt z tym samym? Jakie mogą być wyzwania, technologiczne blokady na drodze do osiągnięcia tego samego?Hadoop jako baza danych magazynu dokumentów

+0

Jestem ciekawy, jakie korzyści widzisz w Hadoop dla tego zastosowania. – Bill

+0

@Msdnexpert: jakiej funkcji szukasz? Prosta wspólna pamięć masowa? HDFS/Hadoop nie jest siecią SAN. Więcej szczegółów, proszę. –

+0

Tak. Im zamierzam wykorzystać HDFS jako rozproszony, skalowalny system pamięci masowej. Czy to jest możliwe? – Msdnexpert

Odpowiedz

10

Hadoop to więcej do przetwarzania wsadowego, który zapewnia wysoki dostęp do danych. Powinieneś rzucić okiem na niektóre systemy NoSQL, takie jak zorientowane na dokumenty bazy danych. Trudno odpowiedzieć, nie wiedząc, jakie są twoje dane.

Reguła numer jeden dla projektu NoSQL polega na zdefiniowaniu najpierw scenariuszy zapytań. Gdy naprawdę zrozumiesz, w jaki sposób chcesz wysyłać zapytania do danych, możesz zapoznać się z różnymi rozwiązaniami NoSQL. Domyślną jednostką dystrybucji jest klucz. Dlatego musisz pamiętać, że musisz mieć możliwość dzielenia danych między komputerami węzłów, w przeciwnym razie skończysz z horyzontalnie skalowalnym systemem, w którym wszystkie prace będą nadal wykonywane w jednym węźle (aczkolwiek lepsze będą zapytania zależne od przypadku).

Musisz także przemyśleć twierdzenie CAP, większość baz danych NoSQL jest ostatecznie zgodna (CP lub AP), podczas gdy tradycyjne Relacyjne DBMS to CA. Wpłynie to na sposób przetwarzania danych i tworzenia pewnych rzeczy, na przykład generowanie kluczy może być oszustwem. Oczywiście pliki w folderze są nieco inne.

Pamiętaj również, że w niektórych systemach, takich jak HBase, nie ma koncepcji indeksowania (mam zamiar mieć konfigurację indeksowania plików w tym magazynie dokumentów systemu Windows FS). Wszystkie twoje indeksy będą musiały zostać zbudowane według logiki aplikacji, a wszelkie aktualizacje i usuwanie będą musiały być zarządzane jako takie. Dzięki Mongo możesz tworzyć indeksy na polach i stosunkowo szybko je wyszukiwać, istnieje również możliwość integracji Solr z Mongo. Nie musisz pytać o identyfikator w Mongo, tak jak w HBase, która jest rodziną kolumn (inaczej baza danych Google BigTable), w której zasadniczo masz zagnieżdżone pary klucz-wartość.

Po raz kolejny dochodzimy do danych użytkownika, tego, co chcemy przechowywać, sposobu jego przechowywania i, co najważniejsze, sposobu uzyskania do niego dostępu. Projekt Lily wygląda obiecująco. W pracy, z którą się angażuję, pobieramy dużą ilość danych z internetu, przechowujemy je, analizujemy, rozbierając, parsujemy, analizujemy, przesyłamy strumieniowo, aktualizujemy itp. Nie używamy tylko jednego systemu, ale wiele które najlepiej pasują do wykonywanej pracy. Do tego procesu używamy różnych systemów na różnych etapach, ponieważ daje nam szybki dostęp tam, gdzie jest potrzebny, zapewnia możliwość przesyłania strumieniowego i analizowania danych w czasie rzeczywistym i co ważne, śledzenie wszystkiego w trakcie naszej podróży (jak utrata danych w prod. system to wielka sprawa). Używam Hadoop, HBase, Hive, MongoDB, Solr, MySQL, a nawet dobrych starych plików tekstowych. Pamiętaj, że do produkcji systemu wykorzystującego te technologie jest trochę trudniej niż instalacja Oracle na serwerze, niektóre wydania nie są tak stabilne i naprawdę musisz najpierw wykonać test.Pod koniec dnia zależy to od poziomu oporu biznesowego i krytycznego charakteru systemu.

Inna droga, że ​​nikt dotąd nie wspomniał jest NewSQL - czyli poziomo skalowalne RDBMSs ... Istnieje kilka tam jak klaster MySQL (chyba) i VoltDB które mogą spełnić swoje cause.But ponownie w zależności od danych (czy pliki to dokumenty lub dokumenty tekstowe z informacją o produktach, fakturach lub instrumentach lub czymś) ...

Znów chodzi o zrozumienie danych i wzorców dostępu, systemy NoSQL są również niezwiązane, tzn. nierelacyjne i są tam dla lepszego dopasowania do nierelacyjnych zestawów danych. Jeśli twoje dane są z natury relacyjne i potrzebujesz pewnych funkcji zapytań SQL, które naprawdę muszą robić takie rzeczy jak produkty kartezjańskie (również łączenia), być może lepiej będzie trzymać się Oracle i zainwestować trochę czasu w indeksowanie, dzielenie i dostrajanie wydajności.

Moja rada brzmiałaby tak, że można grać z kilkoma różnymi systemami. Patrzeć na;

MongoDB - Dokument - CP

CouchDB - Dokument - AP

Cassandra - kolumna Family - Dostępne & Partition tolerancyjny (AP)

VoltDB - Naprawdę dobrze wyglądający produkt, baza relacji, która jest rozprowadzana i może działać dla twojej sprawy (może być łatwiejszy do zrobienia) ve). Wydają się również zapewniać wsparcie dla przedsiębiorstw, które może być bardziej odpowiednie dla prod env (tj. Zapewniać użytkownikom biznesowym poczucie bezpieczeństwa).

Jakikolwiek sposób to jest mój 2c. Zabawa z systemami to jedyny sposób, aby dowiedzieć się, co naprawdę działa w twoim przypadku.

+0

Doskonała odpowiedź, czy możesz podać bazę danych do bazy danych jako perspektywę inżynierii danych dla początkujących, w jaki sposób ktoś może nauczyć się tych rzeczy? –

0

HDFS nie wydaje się być właściwym rozwiązaniem. Jest zoptymalizowany pod kątem masowego przetwarzania danych przez paralel i nie jest systemem plików ogólnego przeznaczenia. W szczególności ma następujące ograniczenia, co czyni go probabbly złym wyborem:
a) Jest wrażliwy na liczbę plików. Praktyczny limit powinien wynosić około kilkudziesięciu milionów plików.
b) Pliki są tylko do odczytu i mogą być dodawane, ale nie edytowane. Jest to przydatne do analitycznego przetwarzania danych, ale może nie odpowiadać potrzebom.
c) Ma pojedynczy punkt awarii - namenode. Więc jego niezawodność jest ograniczona.

Jeśli potrzebujesz systemu o porównywalnej skalowalności, ale nie jest on wrażliwy na liczbę plików, sugerowałbym Swift firmy OpenStack. Nie ma również SPOF.

+0

a) jest poprawna, b) może być symulowana przez usunięcie, a następnie zapis, c) nie jest już wstrzymana: https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop- hdfs/HDFSHighAvailabilityWithNFS.html. – Matt

0

Moja sugestia dotyczy zakupu pamięci masowej NAS. Może to być rodzaj produktu EMS isilon, który możesz wziąć pod uwagę.

Hadoop HDFS nie służy do przechowywania plików. Jest to pamięć do przetwarzania danych (dla raportów, analiz ..)

NAS jest do wymiany plików

SAN jest bardziej dla bazy danych

http://www.slideshare.net/jabramo/emc-sanoverviewpresentation

Oświadczenie: Nie jestem EMC osobę, więc możesz wziąć pod uwagę każdy produkt. Po prostu użyłem EMC dla odniesienia.