2017-04-16 16 views
0

私は、30分ごとにハイドープシステムにテキスト区切りファイルが異なるサーバーから(約10)到着するシナリオを持っています。hadoop Pythonで複数のファイルを処理する

各ファイルには約250万レコードあり、同時に到着しない可能性があります。これらのファイルを30分ごとに処理できる方法を探しています。

私の質問は以下のとおりです。

  1. 異なる時間に到着したファイルを処理するためにどのように?
  2. データを10個のファイルに集約したい。そのような大きなファイルを別々に結合するか処理する必要がありますか?

私はこのソリューションをPythonで実装したいと思いますが、hadoopのツール/テクニックを使用したソリューションは高く評価されます。

+0

Apache Oozieを調べることができます。それはデータの可用性に基づいてスパークアクション/ジョブを起動する能力を持っています。 – Pushkr

答えて

0

異なる時間に到着するファイルを処理するにはどうすればよいですか?

あなたのデータが時間に敏感でない限り、問題はありません。そうであれば、生データには、レコードが書き込まれたタイムスタンプが含まれている必要があります。

このような大きなファイルを別々に結合するか処理する必要がありますか?

大きなファイルが最適です。 HDFSのブロックサイズに注意してください。このサイズはインストールによって異なります。

は、私はあなただけに、時計用ファイルのディレクトリ、またはOozie +スパークをスパークストリーミングを使用することを歓迎している

は、通常のバッチをスケジュールするが、他のツールは間違いなくあるこのソリューションは、Pythonで実装することにしたいです簡単です。

いくつかのあなたは

  • アパッチNiFi
  • Streamsetsデータコレクタ
  • Apacheの水路を調査することができます

水路は、これらの10台の外部のサーバにエージェントをインストールする必要があります。

リストされた各サービスはほぼリアルタイムでデータを読み取ることができるため、明示的に30分のバッチを必要としません。

関連する問題