問題タブ [spark-streaming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cassandra - バッチ RDD の結果を Apache Spark のストリーミング RDD と組み合わせる
コンテキスト: Apache Spark を使用して、ログからさまざまな種類のイベントの実行中のカウントを集計しています。ログは、履歴分析用の Cassandra とリアルタイム分析用の Kafka の両方に保存されます。各ログには、日付とイベント タイプがあります。簡単にするために、1 日ごとに 1 つのタイプのログの数を追跡したいとします。
Cassandra からのバッチ データの RDD と、Kafka からの別のストリーミング RDD の 2 つの RDD があります。擬似コード:
質問:
streamRDD の結果を batchRDD と組み合わせるにはどうすればよいですか? batchRDD
次のデータがあり、このジョブが 2014 年 10 月 16 日に実行されたとします
。
Cassandra クエリにはバッチ クエリの開始時刻までのすべてのデータしか含まれていないため、ジョブの開始時刻以降のログのみを考慮して、クエリが終了したときに Kafka から読み取る必要があります。クエリには長い時間がかかると想定しています。これは、履歴結果とストリーミング結果を組み合わせる必要があることを意味します。
説明のために:
次に、最初のストリーム バッチで次のデータを取得したとします。
次に、バッチ RDD をこのストリーム RDD と組み合わせて、ストリーム RDD が次の値を持つようにします。
次に、2 番目のストリーム バッチで次のデータを取得したとします。
次に、ストリーム RDD を更新して、次の値を取得する必要があります。
等々...
を使用streamRDD.transformToPair(...)
して streamRDD データを batchRDD データと結合するために使用することは可能join
ですが、これをストリーム チャンクごとに行うと、ストリーム チャンクごとに batchRDD からのカウントを追加することになり、状態値が「ダブル カウント」されます。最初のストリーム チャンクにのみ追加する必要があります。
spark-streaming - updateStateByKey の問題を伴う 24 時間 365 日の Spark ストリーミング
24 時間年中無休でスパーク ストリーミングを実行していて、updateStateByKey を使用しています。スパーク ストリーミングを 24 時間年中無休で実行することは可能ですか? はい、updateStateByKey が大きくならない場合、どのように処理しますか? updateStateByKey を 24 時間年中無休で実行する場合、定期的にリセット/削除する必要がありますか? または、Spark は分散された方法で処理しますか? メモリ/ストレージを動的に作成する方法。
updateStateByKey が大きくなると、次のエラーが発生します。
これを処理する方法..ドキュメントがある場合は教えてください。私は完全に立ち往生しています。どんな助けも大歓迎です..時間をありがとう
scala - Spark Streaming で DStream から RDD を削除するにはどうすればよいですか?
DStream から最初の n 個の RDD を削除したいと思います。変換とともに次の関数を使用しようとしましたが、機能しません (エラー OneForOneStrategy: org.apache.spark.SparkContext java.io.NotSerializableException)。RDD を削除するという私の本当の目標を達成できるとは思いません。空のものが返されるためです。
scala - updateStateByKey を使用すると、タスクのサイズが大きくなり続けるのはなぜですか?
問題が updateFunc によるものかどうかを確認するために、updateStateByKey で使用する簡単な関数を作成しました。何か別の原因があるに違いないと思います。--master local[4] でこれを実行しています。
しばらくすると、警告が表示され、タスク サイズが増え続けます。
警告 TaskSetManager: ステージ x には非常に大きなサイズ (129 KB) のタスクが含まれています。推奨される最大タスク サイズは 100 KB です。
警告 TaskSetManager: ステージ x には非常に大きなサイズ (131 KB) のタスクが含まれています。推奨される最大タスク サイズは 100 KB です。
spark-streaming - Spark Shell が Hbase クラスを見つけることができません
Spark Streaming を使用して、HDFS から Hbase テーブルにデータをロードしようとしています。HDFS ディレクトリ ランタイムにデータを配置し、textFileStream 関数を使用してそれを読み取ります。spark はクラスパスに hbase jar を持っていないため、spark シェルで Hbase jar をインポートしている間でもエラーが発生します。
scala - Spark: PartialFunction を DStream に渡すにはどうすればよいですか?
スライディング ウィンドウで DStream バッチでキャプチャされたすべての RDD の結合に部分関数を渡そうとしています。1 秒のバッチに離散化されたストリームで 10 秒以上のウィンドウ操作を構築するとします。
私window
はK個のRDDを持っています。collect(f: PartialFunction[T, U])
これらの RDD のすべての K の和集合で使用したいと思います。++
を使用してユニオン演算子を呼び出すこともできますが、 not aを返し、副作用を回避foreachRDD
したいと考えています。RDD
Unit
私が探しているのは、次のようなリデューサーです
次のDStream
ように使用できます。
ただし、これは Spark Streaming API では利用できません。
部分関数を渡すことができるように、ストリームでキャプチャされた RDD を単一の RDD に結合するための良いアイデアはありますか? または、独自のRDDレデューサーを実装するためですか? おそらく、この機能は後続の Spark リリースで提供されるのでしょうか?