私はいくつかのパフォーマンス上の問題を抱えており、あなたにはいくつか質問があります:) 私はスカラアプリケーションを作成しました。このアプリケーションは、ライブの中で、cassandraデータベースからのセッションのようないくつかの統計を計算します。 APIを作成するためにhttpフレームワークとしてスプレーを使用しました。 私は、cassandraの結果を減らして計算するためにsparkを使いました。 spark-submitで私のアプリケーションをsparkで入れました。spark on application web?
これは、直接アプリケーションを開発するための最良の方法だと思いますか?または、sparkの外に1つのアプリケーション(http)を作成し、sparkでcassandraのデータを計算するためにのみ他のアプリケーションを呼び出す必要がありますか?
私のテストでは3つのサーバー(1つは32Gの8つのコア、1つは64G、8つのコア、もう1つは64Gの12コア)です。私は瞬間のためにすることができます)。 私はスタンドアロンモードを使用しています。 spark_default.shで 私の設定:
spark.deploy.defaultCores=28
spark.executor.memory=30G
そして、それは遅い、それが3スパークtraitementで9秒を取る瞬間のために:コレクト
- マップ、SORTBYと1(4Sを取る)
- 和演算(3Sを取る)
- だけのような結果のための和演算(2Sを取る)
これは:
{"結果": "成功"、 "リスト":[{"アイテム": "1474236000"、 "値":6}、{"アイテム": "1474239600" :3}、{"item": "1474243200"、 "value":3}、{"item": "1474246800"、 "value":3}、{"item": "1474250400"、 "value":3 「値」:「アイテム」:「アイテム」:「アイテム」:「1474257600」、「値」:4アイテム、「アイテム」:「1474261200」、「値」:11アイテム、 {"item": "1474264800"、 "value":1}、{"item": "1474268400"、 "value":3}、{"item": "1474272000"、 "value":18} 「item」:「1474275600」、「value」:6}、「item」:「1474279200」、「value」:4}、「item」:「1474282800」、「value」:2}、{item> : "1474296400"、 "値":2}、{"アイテム": "1474293600"、 "値":4}、{"アイテム": "1474297200"、 "値":10}、{"アイテム" {1474304400}、{値}:8}、{1474308000}、{値}:6}、{"アイテム": "1474311600" "値":4}、{"アイテム": "1474322400"、 "値"}:値 ":6}]、" nb_session " :137.0、 "old_nb_session":161}
私には何か提案がありますか?それはとても遅いよ、なぜ私は理解していない:(
どうもありがとう
私はあなたがアプリケーションにスパークを分離する必要があると思います。スパークはサービスのように行動すべきです。 https://github.com/spark-jobserver/spark-jobserverが役立つかもしれません。 – giaosudau
さて、私は個人的には遅くないと主張します。これらは印象的な待ち時間ではありませんが、Sparkは遅延の少ないジョブ用に設計されたものではありません。カッサンドラと直接対峙してみませんか?分離については確かに良いアイデアです。 – zero323