HDFS に保存して分析したいログ行がたくさんあり、それぞれに時間があります。特定の時間枠 (過去 5 分、過去 1 時間) 内の行のみを処理する MapReduce ジョブを実行したいと考えています。
始めるための指針を探しています。そして、任意の代替手段 (例: 行を hbase に保存する? 他のプラットフォーム?)
私の2セント:
そのためにHbaseを使用できます。ファイルの各行を読み取り、TS フィールドを取り出して行キーとして使用し、残りの行を列に格納します。したがって、テーブルには 1 つの列しかありません。これにより、必要に応じて(過去 5 分間、過去 1 時間など)より高速な範囲クエリを実行できます。また、リージョンサーバーのホットスポットを回避するために、事前に分割されたテーブルを作成できます。
または、TS でパーティション分割された Hive テーブルにデータを格納し、HiveQL を介して処理を行うこともできます。または、TS に基づいてデータをバケット化します。簡単でわかりやすい。
HTH
ログ処理は、Hive/HBase を組み合わせた Map/Reduce プログラムで実行できますが、Hadoop アプローチは、Map/Reduce プログラムがバッチ処理用に構築されているため、頻繁にログを処理するのには適していない場合があります。Apache KafkaとStormの組み合わせは、要件に合わせてログを処理するのに適しています
こちらのリンクもご覧ください