問題タブ [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.
scala - HbaseへのSpark rdd書き込み
以下のコードを使用して、Kafka からのメッセージを読み取ることができます。
しかし、私は Kafka からの各メッセージを読み取って HBase に入れようとしています。これは HBase に書き込むコードですが、成功しません。
java - マスター URL を解析できませんでした: 'spark:http://localhost:18080'
コードを実行しようとすると、次のようにスローされますException
。
これは私のコードです:
どうすればこの問題を解決できますか?
scala - スパーク ストリーミングで失われた接続を検出する
現在、Apache Spark Streaming を使用しています。ストリーミングを停止してデータ ソースへの接続を再開できるように、外部データ ソースとの接続が失われたかどうかを検出する方法を知りたいです。
助けてくれてありがとう
java - 個別の要素のスパーク ストリーミングとバッチ モードの間でのコードの再利用
私は Spark 初心者で、spark ストリーミングと spark バッチを使用してラムダ アーキテクチャを実装したいと考えています。
ネットで調べていたら、以下の記事を見つけました。
http://blog.cloudera.com/blog/2014/08/building-lambda-architecture-with-spark-streaming/
これは私の分析の一部では問題ありませんが、個別の要素を見つける必要がある場合、この解決策は実行可能ではないと思います。
JavaRDD で個別の要素を見つけたい場合は、distinct メソッドを使用できます。DStreams は RDD のセットなので、適用する場合
Dstream のメソッドでは、ストリームの各 rdd で個別を実行するため、DStream 全体ではなく、各 RDD で個別の要素を見つけることができます。
そのように書くと少し混乱するかもしれないので、例を挙げて明確にしましょう:
次の要素があります。
バッチ アプリで:
子 RDD には以下が含まれます。
私が正しく理解していれば、これはストリームの動作であるはずです:
1 秒のバッチ時間と 2 秒のウィンドウがあるとします。
最初のRDD:
2 番目の RDD:
2 つの Rdd で終了します。
2番:
これはRDDに関しては明確ですが、DStreamに関してはそうではありません。
ストリーミング部分の私の解決策は次のとおりです。
このようにして、結果は次のようになります。
バッチモードとして。ただし、このソリューションにはメンテナンスのオーバーヘッドが必要であり、コード ベースの重複に起因するエラーのリスクがあります。
バッチ モードのコードを可能な限り再利用して、同じ結果に到達するためのより良い方法はありますか?
前もって感謝します。
java - Spark Core と Spark Streaming のみをコンパイルするにはどうすればよいですか (ストリーミングの単体テスト ユーティリティを取得できるようにするため)。
私は現在、Spark ストリーミング アプリケーションを開発しており、最初の単体テストを作成しようとしています。このアプリケーションには Java を使用しましたが、単体テストを作成するためにも Java (および JUnit) を使用する必要があります。
Spark Streaming 単体テストに焦点を当てたドキュメントは見つかりませんでした。Spark Streaming ソース コードの Java ベースの単体テストしか見つかりませんでした。
これは Scala ファイルに依存します:
これは、次の Scala テスト ファイルに依存します。
https://github.com/apache/spark/tree/branch-1.1/streaming/src/test/scala/org/apache/spark/streaming
そこで、Spark のソース コードを取得し、branch-1.1 ブランチに切り替えて、「コア」モジュールと「ストリーミング」モジュールのみをコンパイルし、最終的にストリーミング テスト ユーティリティのコンパイル済みクラス (または jar ファイル) を取得できると考えました。 Java ベースの Spark Streaming アプリケーションにインポートできることを確認しました。
ただし、次のコマンド ラインでビルドしようとすると失敗しました。
このメッセージの最後に完全な出力が表示されます。
進行する方法はありますか?
ビルドの完全な出力:
apache-spark - Apache Spark Streaming - カフカ - 古いメッセージを読む
Spark ストリーミングを使用して Kafka から古いメッセージを読み取ろうとしています。ただし、リアルタイムで送信されたメッセージしか取得できません (つまり、spark プログラムの実行中に新しいメッセージを入力すると、それらのメッセージが取得されます)。
私の groupID と consumerID を変更して、zookeeper が私のプログラムが以前に見たことを知っているメッセージを出していないことを確認しています。
spark が Zookeeper のオフセットを -1 と見なしていると仮定すると、キュー内のすべての古いメッセージを読み取るべきではありませんか? カフカキューの使用方法を誤解しているだけですか? 私はスパークとカフカに非常に慣れていないので、何かを誤解しているだけである可能性を排除できません。
これを実行すると、次のメッセージが表示されます。したがって、オフセットが設定されているためにメッセージが表示されないだけではないと確信しています。
14/12/05 13:34:08 INFO ConsumerFetcherManager: [ConsumerFetcherManager-1417808045047] パーティション ArrayBuffer([[testtopic,0], initOffset -1 のフェッチャーをブローカー id:1,host:test-spark02.vpc,port: に追加しました: 9092] , [[testtopic,1], initOffset -1 からブローカー ID:1,host:test-spark02.vpc,port:9092] , [[testtopic,2], initOffset -1 からブローカー ID:1,host: test-spark02.vpc,port:9092] , [[testtopic,3], initOffset -1 からブローカー ID:1,host:test-spark02.vpc,port:9092] , [[testtopic,4], initOffset -1ブローカー ID:1、ホスト:test-spark02.vpc、ポート:9092] へ)
次に、1000 件の新しいメッセージを入力すると、一時ディレクトリに保存された 1000 件のメッセージが表示されます。しかし、既存のメッセージの読み方がわかりません。(この時点で) 数万に上るはずです。