2012-04-03 10 views
5

1)私は過去2ヶ月間からハイブを使い始めました。私はSQLと同じタスクを持っています。私は、Hiveが遅く、SQLの実行中に数分/秒でクエリを実行するのに時間がかかることを発見しました。HiveとSQL Serverのパフォーマンス

両方の結果(SQLとHive)をクロスチェックすると、Hiveでタスクを実行した後、いくつかの違いが見つかりました。例: :私は2012年のレコードを持っている1つのテーブルを持っています、私はハイヴの同じテーブルのハイブのタスクを実行したとき、私は2007年のレコードを持っています。

どうしてですか?

2)ハイブで私の処刑をスピードアップすると思うなら、どうすればいいですか? (現在、私は、単一のクラスタ上のすべてのこのようなものを実行しています。私は、クラスタを高めるためと考えられる場合は、その後どのように多くのクラスタが、私はそれがパフォーマンスを向上させる必要があるはずです)

私はなるように私にいくつかのソリューションまたはいくつかの良い習慣を提案してください。それは鋭くできます。

ありがとうございました。

+1

質問には本当に答えられませんが、SQL ServerとHiveを直接比較する方法はわかりません。まったく異なる目的とアーキテクチャを持つ全く異なる製品です。 Hiveのパフォーマンスを向上させる方法を問うことは良い質問ですが、SQL ServerがHiveとの関連性はないと思います(またはその逆)。システムのパフォーマンスを向上させるためのアドバイスが必要な場合は、これまでのところより多くの情報を提供する必要があります。 – Pondlife

+0

@Pondlife:あなたの返事をありがとう。 はい、どちらも違います。私はちょうどハイブがSQLのそれよりもクエリを実行するいくつかの異なる動作を持っていることを知りたいですか?一致基準に違いはありますか? また、さまざまな要因に基づいてHiveのパフォーマンスを向上させるさまざまな要素についても知りたいと思います。 –

+0

@Pondlife:なぜ私は両方がデータクエリエンジンとして使用されるときに2つを比較できないのかわかりません。はい、基礎となるデータとコンピューティングのアーキテクチャは異なりますが、目的は同じです。私が何かが恋しくなるなら、SQLの種類のクエリ以外のハイブをどのように使用するかについて教えてください。 – Causality

答えて

4
  • ハイブとSQL Serverは、クエリ言語の構文の類似性以外は比較できません。
  • SQL Serverは1台のマシンからリアルタイムで応答できるように構築されていますが、ハイブは数百台または数千台のマシンにまたがる大きなデータセットを処理するためのものです。
  • ハイブ(via hadoop)には、ジョブを開始するためのオーバーヘッドがあります。
  • ハイブとhadoopは、SQL Serverのようにメモリにデータをキャッシュしません。
  • ハイブには最近追加されたインデックスしかないため、ほとんどのクエリはテーブルスキャンになります。
  • データセットが1台のコンピュータに収まる場合は、おそらくSQL Serverに固執し、ハイブではないと思うでしょう。ハイブのパフォーマンスチューニングは、主にHadoopのパフォーマンスチューニングに基づいていますが、そこで実行するクエリのタイプに応じて、LazyBinarySerDeを使用することで無駄なパフォーマンスが生じる可能性があります。

ハイブには、通常のSQLとの相違点があります。これは、クエリに影響する可能性があります。それ以上の詳細がなければ、なぜ私は推測することはできません。

関連する問題