問題タブ [spark-jobserver]
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.
caching - 完了した Spark ジョブからキャッシュされたものを他のジョブから引き続きアクセスできるようにする方法は?
私のプロジェクトは、ユーザーがそのデータを発見するための対話クエリを実装しています。ユーザーが選択できる列のリストがあるように、ユーザーはリストに追加してデータを表示します。Cassandra の現在のデータ ストアと、Spark SQL を使用してそこからクエリを実行します。
データ フローは、Spark ストアによって Cassandra に処理された後の生のログです。データは、20 を超える列と 4 つのメトリックを含む時系列です。現在、クラスタ キーに 20 を超えるディメンションがあるため、Cassandra への書き込みが非常に遅いため、テストしました。
ここでのアイデアは、Cassandra から Spark にすべてのデータをロードし、メモリにキャッシュすることです。API をクライアントに提供し、Spark Cache に基づいてクエリを実行します。しかし、キャッシュされたデータを保持する方法がわかりません。機能呼び出しshare objectを持つ spark-job-server を使用しようとしています。しかし、それが機能するかどうかはわかりません。
40 を超える CPU コアと 100 GB の RAM を備えたクラスターを提供できます。クエリするデータは約 100 GB と見積もっています。
私がすでに試したこと:
- Alluxio に保存し、そこから Spark にロードしようとしますが、4GB のデータをロードするとき、Spark は最初に 2 つのことを行う必要があるため、ロードに時間がかかります。Alluxio からの読み取りには 1 分以上かかり、次にディスクへの保存 (Spark Shuffle) のコストがかかります。 2、3分以上。つまり、目標とする時間は 1 分未満です。8 つの CPU コアで 1 つのジョブをテストしました。
- MemSQL に格納しようとしますが、コストがかかります。1日で2GBのRAMがかかりました。スケーリングしても速度が維持されているかどうかはわかりません。
- Cassandra を使用してみますが、Cassandra は GROUP BY をサポートしていません。
それで、私が本当に知りたいのは、私の方向性が正しいかどうかです。目標をアーカイブするために変更できること (多くの group by、SUM、ORDER BY を持つ MySQL のようなクエリ) を API によってクライアントに返します。
apache-spark - クラスタ内の複数のノードでspark jobserverが起動しない
server_start.sh を使用して Spark クラスターで起動される spark-jobserver をインストールしましたが、どうやっても複数のワーカーで起動することはできません。複数のコアとより多くのメモリを使用して実行することはできますが、複数のノードでは実行できません。
試したコマンドは次のとおりです。
最初の 2 つのコマンドは起動され、1 つのコアと 1GB を使用する 1 つのワーカーを示し、3 つ目のコマンドは 4 つのコアと 7g を使用する 1 つのワーカーを示しています。4 番目のコマンドは、使用される 6 つのコアを示していますが、状態は SUBMITTED です。
次のコマンドを使用して spark シェルを起動することにより、複数のワーカーで起動してアプリケーションを実行できることを確認しました。これは、2 つのワーカーと合計 6 つのコアを持つ実行中のドライバーとして表示されます。
助けていただければ幸いです。
apache-spark - Spark スタンドアロン クラスタで複数のワーカーを使用して分散 Spark Job Server を実行する
いくつかのマシンで実行されている Spark スタンドアロン クラスターがあります。すべてのワーカーは 2 つのコアと 4GB のメモリを使用しています。でジョブ サーバーを起動できますが./server_start.sh --master spark://ip:7077 --deploy-mode cluster --conf spark.driver.cores=2 --conf spark.driver.memory=4g
、2 つ以上のコアでサーバーを起動しようとすると、ドライバーの状態が "SUBMITTED" のままになり、ワーカーがジョブを実行しません。
4 コアで spark-shell を開始しようとしまし./spark-shell --master spark://ip:7077 --conf spark.driver.cores=4 --conf spark.driver.memory=4g
たが、ジョブは 2 ワーカー (それぞれ 2 コア) 間で共有されます。ただし、spark-shell はドライバーではなくアプリケーションとして起動されます。
複数のワーカー間で分割されたドライバーを実行する方法はありますか? または、ジョブ サーバーをドライバーではなくアプリケーションとして実行できますか?
scala - Spark Job Server 経由でジョブを実行する
Namenode と ResourceManager 用の HA を備えた 3 ノード Hadoop クラスターをセットアップしました。NameNode マシンの 1 つに Spark Job Server もインストールしました。
WordCount Example や LongPi Job などの job-server-test サンプルの実行をテストしましたが、問題なく完璧に動作します。また、リモート ホストから curl コマンドを発行して、Spark Job Server 経由で結果を読み取ることもできます。
しかし、「spark-examples-1.6.0-hadoop2.6.0.jar」を spark-job-server/jars にアップロードして SparkPi ジョブを実行しようとすると、失敗します。
/usr/local/hadoop/spark-jobserver/job-server-tests/src/spark.jobserver の下に手動でSparkPi.scalaジョブを配置し、 SBT を使用してパッケージをビルドしようとしましたが、同じエラーがスローされます。
バージョン情報
このエラーを取り除き、spark-examples jar ファイルから出力を取得する方法に関する提案
apache-spark - Spark ジョブ サーバーで自動 Spark ジョブを 1 時間ごとにスケジュールする
DataStax Enterprise Edition 4.8では、Spark Jobserver 0.5.2 は、サポートされているバージョンの Apache Spark 1.4.1.1 に対して特別にコンパイルされています。Spark ジョブは、Cassandra からデータを読み取り、要約されたデータを同じキースペース内の別のテーブルに書き込みます。
Spark ジョブ サーバーには、1 時間ごとにジョブを自動的に実行するようにスケジュールする機能はありますか?
apache-spark - 1 つの jar ファイルに多数のスパーク ジョブ
ジョブ管理の作業に Spark ジョブ サーバーを使用しています。たとえば、10個のジョブを作成する必要があります。そのために 10 個の個別の jar を作成し、次の方法で呼び出すことができます。
または、10 個のジョブ クラスを持つ jar を 1 つだけ作成できます。
どちらのバリアントがより好ましいですか?またその理由は?