Spark/Cassandraクラスタで単純なアプリケーションを実行しています。新しい環境(1.2の代わりにSpark 1.5およびCassandraのマイナーバージョンもアップグレード)から、実質的なパフォーマンスのダウングレードが観察された(同じ仕事と同じ量のデータに対しては4秒から1〜5mまで)。Apache Spark/Cassandraクラスタで過度のパーティショニング(タスクが多すぎる)
最初の調査の後、spark-driverの観点から見ると、全く同じコードのために、さらに多くのタスクが生成されています(20 + k、最大5まででした)、実行者側のログも同じです状況:異なるパーティション上の同じクエリの
多くのシーケンシャル処刑:
...
CassandraTableScanRDD: Fetched 0 rows from x.y for partition 20324 in 0.138 s.
CassandraTableScanRDD: Fetched 0 rows from x.y for partition 20327 in 0.058 s.
CassandraTableScanRDD: Fetched 0 rows from x.y for partition 20329 in 0.053 s.
...
それは単一のものにするために使用:
CassandraTableScanRDD: Fetched 905 rows from x.y for partition 0 in 2.992 s.
アプリケーションのコードは同じなので、パーティションの振る舞いにこのような違いが生じている可能性があり、それを修正するために何ができるのでしょうか?
NB!両方の環境の設定が異なる場合、設定は共有/継承されません。
ありがとうございました。
関連項目:http://stackoverflow.com/q/32799122/1560062? – zero323
あなたはcassandraの2番目のアイデンティティに仮想ノードを使用しましたか? –