問題タブ [lambda-architecture]
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 - Apache Spark を使用した Lambda アーキテクチャ
次のツールを使用して Lambda アーキテクチャを実装しようとしています: すべてのデータポイントを受信する Apache Kafka、バッチ処理 (ビッグ データ) 用の Spark、リアルタイム (Fast Data) 用の Spark ストリーミング、結果を保存する Cassandra。
また、受信するすべてのデータポイントはユーザー セッションに関連しているため、バッチ処理では、セッションが終了した時点でデータポイントを処理することにのみ関心があります。したがって、私は Kafka を使用しているため、これを解決する唯一の方法 (すべてのデータポイントが同じトピックに格納されていると仮定) は、バッチがトピック内のすべてのメッセージを取得し、セッションに対応するメッセージを無視することです。まだ終わっていません。
そこで、お聞きしたいのは次のことです。
- これは Lambda アーキテクチャを実装するための適切なアプローチですか? それとも、代わりに Haddop と Storm を使用する必要がありますか? (バッチ処理、Map Reduce に Kafka と Apache Spark を使用している人の情報が見つかりません)
- ユーザーセッションの問題を解決するためのより良いアプローチはありますか?
ありがとう。
cassandra - HBase または Cassandra?
私のラムダ アーキテクチャでは、不変データを格納するために HDFS と Cassandra のどちらを使用するかについて議論しています。オンライン リクエストなどに対応するには Cassandra が必要なので、技術スタックの必須部分です。現在、必要がなければ、スタックに新しいツール (HDFS) を導入したくありません。私の質問は、HDFS を使用せず、Cassandra を使用して不変データもホストする場合、何が欠けているのでしょうか。
編集:
HDFS は分散ファイルシステムであり、Cassandra は NoSQL DB であることを理解しています。それでも、どちらもデータ レプリケーションをサポートし、どちらも高スループットの書き込みをサポートします。さらに、Cassandra は低潜在データ検索をサポートします。では、HDFS が私に多くのリフトを提供しないと言っているのは正しいでしょうか?
real-time - 単独でスパークストリーミングしない理由
私は Kafka/Spark-Streaming の経験はあまりありませんが、分析/ダッシュボード用のリアルタイム システムを構築する上でコンボがいかに優れているかについての多くの記事を読みました。誰かがスパークストリーミングだけではできない理由を説明できますか? 言い換えれば、なぜ Kafka はデータ ソースとスパーク ストリーミングの間にあるのでしょうか?
ありがとう
java - 終了後にSparkにジョブを自動的に再起動させる方法は?
私はラムダ アーキテクチャを構築しており、Spark をそのバッチ部分として、定期的に、または終了直後に再起動するか、Spark Streaming ジョブによって再起動を呼び出す必要があります。私は物事を見てきましたが、おそらくSparkコンテキストを理解していませんが、Sparkコンテキストをループに入れることができるかどうかはわかりません. 誰でも簡単なガイダンスを提供できますか? もう 1 つの簡単な質問は、Spark がデータを読み取る HBase にデータが継続的に追加されることを考えると、キャッシングの用途はあるのでしょうか? 助けてくれてありがとう。
編集: SparkListener を実装し、ジョブの終了時に収集を呼び出すと、すべての計算がやり直されますか?
java - Spark Batch が Spark Streaming ジョブを一時停止しています
コンピューターの仮想マシンでスタンドアロンの Spark を実行しています。Spark Streaming は Kafka からデータを取得し、それを HBase テーブルに保存してから処理し、結果を別のテーブルに保存します。
Spark Batch は、最新のエントリの処理結果のテーブルをクエリし、そこからのデータを使用して、未処理のデータ テーブルからクエリするデータを決定します。バッチ ジョブには無限の while ループがあり、終了するとバッチが再開されます。それとストリーミング ジョブの両方で、スケジューラが Fair に設定されています。
生成された情報を最初に Kafka にストリーミングし、次にストリーミング レイヤー用に別のスレッドを起動し、その後一定の遅延後にバッチ用に起動することで、これらすべてを適切な順序で実行するクライアント アプリがあります。
私の問題は、提供された 3 つのコアのうち 2 つを使用してストリーミングが実行され、文句を言わないことですが、バッチ ジョブが開始されると、ストリームは実行中であると表示されますが、バッチ ジョブがテーブルに書き込んでいる間、HBase テーブルはそれを明確に示しています。ストリーミング ジョブは何も書き込みません。また、これがすべて発生している間、ストリーミング ログは一時停止します。
実行するスレッドを設定する方法は次のとおりです。
バッチとストリーミングの開始は、次のように ProcessBuilder を介して行われます。
なぜそれが起こっているのか、誰かが考えを持っていますか? Spark が自分のやりたいようにタスクを管理していないのではないかと疑っていますが、どうすればよいかわかりません。
hadoop - Elasticsearch によるイベント ログのリアルタイム分析
デバイスのプロパティが変更されるたびにイベント ログを収集しています。この目的のために、私は使用することにしました:
- Logstash - エージェント IoT アプリケーションがログを JSON 形式で送信する場所
- Elasticsearch - データ (ログ) の保存用、
- Kibana - データの視覚化用。
ログ付きの JSON は定期的に送信されており、その形式は次のとおりです。
Elasticsearch の単一イベント エントリの例は次のようになります。
私の目標は、分析されたデータを適切な時間 (数分で許容できるはずです) で表示する、ある種のダッシュボードを備えた Web サイトを作成することです。
- エネルギー消費の履歴を表示し、機能で消費を予測する
- エネルギー消費の異常、または照明や暖房の使用などのその他の要因の検出
- 洗練されていないある種の統計に基づいて推奨事項を表示します。つまり、「特定のデバイスを場所 1 から場所 2 に移動できます。場所 1 でより必要とされている (他の場所よりも集中的に使用されているため)」などです。
最後のポイントは非常に些細なことですが、Elasticsearch で単純なクエリまたは集計を使用して、しきい値と比較できますが、最初の 2 つのポイントでは、機械学習やデータ マイニングなどの詳細な分析が必要です。
今のところ、システムには平均 10 秒ごとにステータスを更新する約 50 のデバイスが装備されています。将来的には、デバイスの数は 50,000 まで増加する可能性があります。1 つのイベント ログに 100 バイトを想定すると、Elasticsearch では年間約 15 テラバイトのデータにつながる可能性があります。
一般的な質問は、そのようなシステムの合理的なソリューション/テクノロジー/アーキテクチャーとは何でしょうか?
- すべてのログを Elasticsearch に保存することは妥当なスタートですか?
- 私は es-hadoop ライブラリが Elasticsearch を Apache Spark と一緒に使用して、Spark で Mlib を使用してデータを処理できるようにすることを検討しています - それは妥当な方向性ですか?
- Elasticsearch のみを使用してすべてのデータを格納し、Spark と Mlib のみを使用して詳細な分析を提供できますか? それとも、Elasticsearch をスピード レイヤーとして扱う、いわゆる「ラムダ アーキテクチャ」の実装を検討する必要がありますか? Kafka、Apache Storm が使用されたさまざまな構成について少し赤字にしましたが、それが必要かどうかはよくわかりません。プロジェクトは 1 か月以内に完了する必要があり、私は初心者なので、複雑さと実装に必要な時間が心配です。
- データ負荷が 10 分の 1 になるとしたら (年間約 1.5 テラバイト)、答えは同じでしょうか?
scala - Spark ストリーミングの NoClassDefFoundError エラー
Spark Kafka Cassandra Integration を作成しようとしています。これで cassandra に接続できるようになりましたが、使用して SparkStreamingContext オブジェクトを作成しようとすると
上記のコードをインポートして書くことができます。しかし、コードをビルドして実行しようとすると、以下のエラーに直面しています:
実行時に SparkStreaming オブジェクトを作成できない理由がわかりません。
助けてください。スカラとラムダアーキテクチャスタック全体を使用するのは初めてです。
以下は、build.sbt 内の構成です。
以下はログです。現在、M は単語数を出力できず、同じものを cassandra db に保存することもできません。