2016-12-30 9 views
0

私はクラスタ上でいくつかのデータを使って遊んでいて、いくつかの集計をしたいです---複雑すぎるものではなく、結合して別名を数えます。私はHiveとSparkでこの集約をScalaで実装し、実行時間を比較したいと思います。私の特定のユースケースでHive(on Tez)とSparkの間のパフォーマンスベンチマーク

私はゲートウェイからスクリプトを提出すると、Linuxの時間関数は、私が期待したsys時間よりも小さいリアルタイムを提供します。しかし、私はどちらが正しい比較として選ぶべきかわからない。たぶん、sys.timeを使用して、両方のクエリを何度も実行するのでしょうか?この場合、私は完全に受け入れることができますか?

答えて

0

リアルタイム。パフォーマンスベンチマークの観点からは、クエリが完了するまでの所要時間(人的時間)のみを考慮し、内部的にアプリケーションによってスピンアップされるプロセスの数ではなく、結果を見ることができます。

SparkとHiveの両方にパフォーマンスに大きな影響を与える調整可能な設定ノブがたくさんあるので、パフォーマンスベンチマークには非常に注意が必要です。ベクトル化、データ形式選択、データバケット作成、データ並べ替えを使用してHiveのパフォーマンスを変更する例については、hereを参照してください。

「一般的なコンセンサス」は、SparkがTezのHiveより高速ですが、Hiveはメモリに収まりきれない巨大なデータセットを処理できることです。 (私は怠惰なので、私はソースを引用するつもりはない、いくつかのグーグルを行う)

関連する問題