13

MapReduce アプローチを使用して (HTTP 経由でアクセスされる) データの連続ストリームを分析したいので、Apache Hadoop を調べています。残念ながら、Hadoop は、新しいデータが到着したときに消費者に渡すことができるのではなく、固定サイズの入力ファイルでジョブを開始することを期待しているようです。これは実際に当てはまりますか、それとも何か不足していますか? 開いているソケットから読み込まれるデータを操作する別の MapReduce ツールはありますか? ここではスケーラビリティが問題になるので、MapReducer に厄介な並列処理を処理させたいと思います。

Cascadingをいじってみたところ、HTTP 経由でアクセスする静的ファイルでジョブを実行できましたが、これで実際に問題が解決するわけではありません。中間ステップとして curl を使用して Hadoop ファイルシステムのどこかにデータをダンプし、新しいデータ チャンクの準備が整うたびに新しいジョブを起動するウォッチドッグを作成することもできますが、それは汚いハックです。これを行うには、もっとエレガントな方法が必要です。何か案は?

4

10 に答える 10

10

あなたが説明するハックは、多かれ少なかれ物事を行うための標準的な方法です-Hadoopは基本的にバッチ指向のシステムです(たとえば、データに終わりがない場合、リデューサーは開始する必要があるため、開始できませんマップフェーズは終了しています)。

ログをローテーションします。それらを回転させたら、それらを HDFS にダンプします。ウォッチドッグ プロセス (おそらく、ZooKeeper を使用して調整された分散型プロセス) でゴミ捨て場を監視し、新しい処理ジョブを開始します。オーバーヘッドを保証するのに十分な大きさの入力でジョブが実行されるようにする必要があります。

Hbase は Hadoop エコシステムの BigTable クローンであり、挿入の継続的なストリームを可能にするので、興味深いかもしれません。ただし、バッチ モードで分析クエリを実行する必要があります。

于 2009-08-02T20:48:19.297 に答える
6

http://s4.io/はどうですか。ストリーミングデータを処理するために作られています。

アップデート

新製品が登場しています:Storm-分散型でフォールトトレラントなリアルタイム計算:ストリーム処理、連続計算、分散型RPCなど

于 2011-01-06T19:35:48.730 に答える
2

Esper CEP ( http://esper.codehaus.org/ )を確認する必要があると思います。

于 2009-08-14T14:14:12.037 に答える
1

Yahoo S4 http://s4.io/

マップリデュースのようなリアルタイムストリームコンピューティングを提供します

于 2011-04-14T01:31:34.863 に答える
1

ここに複数のオプションがあります。解決策として、Kafka と Storm + (Hadoop または NoSql) の組み合わせをお勧めします。私たちはすでにこれらのオープンソース ツールを使用してビッグ データ プラットフォームを構築しており、非常にうまく機能しています。

于 2015-01-15T09:14:11.340 に答える
0

いくつかの成熟したストリーム処理フレームワークと製品が市場で入手可能です。オープン ソース フレームワークには、Apache Storm や Apache Spark などがあります (どちらも Hadoop 上で実行できます)。IBM InfoSphere Streams や TIBCO StreamBase などの製品も使用できます。

ストリーム処理と、これらすべてのフレームワークおよび製品について詳しく説明している InfoQ の記事をご覧ください: Real Time Stream Processing / Streaming Analytics in Combination with Hadoop。また、この記事では、これが Hadoop をどのように補完するかについても説明しています。

ところで、Oracle や TIBCO などの多くのソフトウェア ベンダーは、このストリーム処理/ストリーミング分析アプローチを「ビッグ データ」ではなく「高速データ」と呼んでいます。これは、バッチ処理ではなくリアルタイムで処理する必要があるためです。

于 2015-03-27T16:58:51.110 に答える
0

Apache Spark Streaming を試す必要があります。それはあなたの目的のためにうまくいくはずです。

于 2015-08-19T12:37:05.000 に答える
0

あなたのユース ケースは、Hadoop を使用して Web クローラーを作成する問題に似ています。HTTP 経由でリモート ページを取得するために開かれたソケットからデータが (ゆっくりと) ストリーム バックします。

その場合は、Web ページのフェッチが map-reduce に適切にマップされない理由を参照してください。そして、このタイプの問題を解決するために、リデューサーに (カスケード経由で) スレッド化されたアプローチを実装する BixoのFetcherBufferクラスをチェックアウトすることをお勧めします。

于 2009-12-16T23:32:45.757 に答える