Flume を使用してウェブログから hdfs にデータ ストリームを書き込み、spark ストリームを使用してそのデータを処理するリアルタイム アプリケーションを作成しました。しかし、flume が hdfs に新しいファイルを書き込んで作成している間、spark ストリームはそれらのファイルを処理できません。put コマンドを使用して hdfs ディレクトリにファイルを配置している場合、spark ストリームはファイルを読み取って処理できます。同じことに関するどんな助けも素晴らしいでしょう。
3 に答える
3
あなたは自分で問題を検出しました: データのストリームが継続している間、HDFS ファイルは「ロック」され、他のプロセスで読み取ることができません。逆に、あなたが経験したように、データのバッチ (ストリームではなく yur ファイル、バッチ) を配置すると、アップロードされると、読み取りの準備が整います。
とにかく、Spark ストリーミングの専門家ではありませんが、Spark ストリーミング プログラミング ガイドの概要セクションから、適切な展開を行っていないようです。つまり、そこに示されている図から、ストリーミング (この場合は Flume によって生成されたもの) は Spark ストリーミング エンジンに直接送信する必要があるようです。結果は HDFS に格納されます。
それにもかかわらず、Flume -> HDFS -> Spark などの展開を維持したい場合は、一時的な HDFS フォルダーにデータのミニバッチを作成し、ミニバッチの準備ができたら、新しいデータをすぐに保存することをお勧めします。最初のバッチを分析のために Spark に渡します。
HTH
于 2015-06-11T09:20:28.240 に答える