Streaming danych i Hadoop? (Nie Hadoop Streaming)

Chciałbym przeanalizować ciągły strumień Danych (dostęp przez HTTP) przy użyciu podejścia MapReduce, więc szukałem Apache Hadoop. Niestety, wygląda na to, że Hadoop spodziewa się rozpocząć pracę z plikiem wejściowym o stałym rozmiarze, zamiast móc przekazywać nowe dane konsumentom, gdy tylko pojawią się. Czy rzeczywiście tak jest, czy coś przeoczyłem? Czy istnieje inne narzędzie MapReduce, które działa z danymi odczytywanymi z otwartego gniazda? Skalowalność jest tutaj problemem, więc chciałbym wolę pozwolić, aby MapReducer poradził sobie z niechlujną paralelizacją.

Bawiłem się Kaskadowaniem i byłem w stanie uruchomić zadanie na statycznym pliku dostępnym przez HTTP, ale to nie rozwiązuje mojego problemu. Mógłbym użyć curl jako pośredniego kroku, aby zrzucić dane gdzieś na system plików Hadoop i napisać watchdoga, aby odpalić nowe zadanie za każdym razem, gdy nowy kawałek danych jest gotowy, ale to brudny hack; musi być jakiś bardziej elegancki sposób, aby to zrobić. Jakieś pomysły?

Author: Meredith L. Patterson, 2009-08-02

10 answers

Hack, który opisujesz, jest mniej więcej standardowym sposobem robienia rzeczy-Hadoop jest zasadniczo systemem zorientowanym wsadowo (po pierwsze, jeśli nie ma końca danych, Reduktory nigdy nie mogą się uruchomić, ponieważ muszą zacząć się po zakończeniu fazy map).

Obróć dzienniki; gdy je obrócisz, wrzuć je do HDFS. Niech proces watchdog (być może rozproszony, koordynowany za pomocą Zookeepera) monitoruje wysypiska i uruchamia nowe zadania przetwarzania. Będziesz chciał zrobić na pewno praca odbywa się na wejściach na tyle dużych, aby zagwarantować koszty ogólne.

Hbase jest klonem BigTable w ekosystemie hadoop, który może być dla Ciebie interesujący, ponieważ pozwala na ciągły strumień wstawek; nadal będziesz musiał uruchamiać zapytania analityczne w trybie wsadowym.

 10
Author: SquareCog,
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
2009-08-02 20:48:19

A co z http://s4.io / . służy do przetwarzania danych strumieniowych.

Update

Rośnie nowy produkt: Storm - rozproszone i odporne na błędy obliczenia w czasie rzeczywistym: przetwarzanie strumieni, obliczenia ciągłe, rozproszone RPC i inne

 6
Author: DrDol,
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
2012-03-08 16:37:24

Myślę, że powinieneś rzucić okiem na Esper CEP ( http://esper.codehaus.org / ).

 2
Author: Andrei Savu,
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
2009-08-14 14:14:12

Yahoo S4 http://s4.io/

Zapewnia przetwarzanie strumienia w czasie rzeczywistym, jak map reduce

 1
Author: frankdou,
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
2011-04-14 01:31:34

Twitter ' s Storm jest tym, czego potrzebujesz, możesz spróbować!

 1
Author: selfboot,
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-30 08:56:36

Wiele opcji tutaj. Jako rozwiązanie proponuję połączenie Kafki i Storm + (Hadoop lub NoSql). Już budujemy naszą platformę big data przy użyciu tych narzędzi opensource i działa ona bardzo dobrze.

 1
Author: Kim_Spin,
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-01-15 09:14:11

Twój przypadek użycia brzmi podobnie do problemu pisania robota sieciowego przy użyciu Hadoop - dane wracają (powoli) z gniazd otwartych, aby pobrać zdalne strony przez HTTP.

Jeśli tak, zobacz Dlaczego pobieranie stron internetowych nie mapuje dobrze do map-reduce. Możesz też sprawdzić klasę FetcherBuffer w Bixo, która implementuje podejście gwintowane w reduktorze (poprzez kaskadowanie) w celu rozwiązania tego typu problemu.

 0
Author: kkrugler,
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
2009-12-16 23:32:45

Jak wiesz, główne problemy z Hadoop do wykorzystania w wydobywaniu strumieniowym jest fakt, że po pierwsze, używa HFD, który jest dyskiem i operacje na dysku przynoszą opóźnienia, które spowodują brak danych w strumieniu. po drugie, rurociąg nie jest równoległy. Map-reduce zazwyczaj działa na partiach danych, a nie instancjach, jak w przypadku danych strumieniowych.

Niedawno przeczytałem artykuł o M3, który rozwiązuje pierwszy problem, najwyraźniej omijając HDFS i wykonując obliczenia w pamięci w obiektach baza danych. A w drugiej kwestii, używają przyrostowych uczniów, które nie są już wykonywane w partii. Warto to sprawdzić M3 : Przetwarzanie strumienia na Main-Memory MapReduce . Nie mogłem nigdzie znaleźć kodu źródłowego ani API tego M3, jeśli ktoś go znalazł, Udostępnij link tutaj.

Również Hadoop Online jest kolejnym prototypem, który próbuje rozwiązać te same problemy, co m3: Hadoop Online

Jednak Apache Storm jest kluczem rozwiązanie problemu, jednak to nie wystarczy. Potrzebujesz trochę euqivalent map-reduce right, oto dlaczego potrzebujesz biblioteki o nazwie SAMOA , która faktycznie ma świetne algorytmy do nauki online, których mahout trochę brakuje.

 0
Author: ambodi,
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
2014-09-27 08:49:09

Na rynku dostępnych jest kilka dojrzałych struktur przetwarzania strumienia i produktów. Frameworki Open source to np. Apache Storm lub Apache Spark (które mogą działać na bazie Hadoop). Możesz również korzystać z produktów takich jak IBM InfoSphere Streams czy TIBCO StreamBase.

Spójrz na ten artykuł InfoQ, który szczegółowo wyjaśnia przetwarzanie strumieni oraz wszystkie te frameworki i produkty: przetwarzanie strumieni w czasie rzeczywistym / analiza strumieniowa w połączeniu z Hadoop. Poza tym artykuł wyjaśnia również, w jaki sposób jest to komplementarne do Hadoop.

Przy okazji: wielu dostawców oprogramowania, takich jak Oracle lub TIBCO, nazywa to podejście do przetwarzania strumieniowego / analizy strumieniowej " szybkimi danymi "zamiast" big data", ponieważ musisz działać w czasie rzeczywistym zamiast przetwarzania wsadowego.

 0
Author: Kai Wähner,
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-03-27 16:58:51

Powinieneś spróbować streamingu Apache Spark. To powinno działać dobrze dla Twoich celów.

 0
Author: member555,
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-08-19 12:37:05