2017-10-10 3 views
0

最近、Spark 1.6にアップグレードし、HiveのデフォルトクエリエンジンとしてSparkQLを使用しようとしました。 HiveServer2とSpark On Yarn Serviceが有効な場合、Spark Gatewayの役割が同じマシンに追加されます。私は、次のようなクエリを実行するとただし:Spark on Hiveの進行状況バーが10%でスタック

SET hive.execution.engine=spark; 
INSERT OVERWRITE DIRECTORY '/user/someuser/spark_test_job' SELECT country, COUNT(*) FROM country_date GROUP BY country; 

我々が見ジョブが糸によって受け入れられ、リソースが割り当てられ、ステータスが、それはしかし、実行されていると言う、それは10%の一定の進捗状況を示し、さらに、いずれかを行っていません色相または肌色のいずれかのUIで表示されます。 From Hue Spark UIのジョブが完了していることを確認しても、実際にHDFSの出力が表示されます。 output from Spark UI 誰も似たような問題に遭遇しましたか?このような振る舞いをデバッグする手がかりはありますか? 私はCloudera CDHを使用します。5.12

+0

実行が既に終了しているようです。スパークとハイブのセッションはまだ開いています。スパークと他のタイプのデータを持つ糸の実行の進展はほとんど異なります。これは通常、spark-shellを使用しているときに進行状況が常に10%になるときに発生します。 Hiveがセッションごとにこのような接続を開くと、これはおそらく問題です。 Tezはそれとは少し違って動作します。 –

+0

@ThiagoBaldimセッションを閉じる方法はありますか?回避策はありますか? – madbitloman

答えて

0

回答が見つかりました。最近これを修正するためにpatch releasedがありました。バグと機能の間に浮い:ハイブのセッションが開始され、クエリが スパーク処理エンジンに提出された場合、セッションが終了するまで

、ハイブは クラスタ上で一つ以上のスパークエグゼキュータを維持します。 スパーク処理エンジンの初期設定には時間がかかります。 のクエリに新しいスパーク処理エンジンを作成する際のオーバーヘッドを避けるため、Hiveは各ハイブセッションごとにSparkアプリケーションマスタ(YARN Spark ドライバ)と1つ以上のSpark Executorsを維持します。しかしながら、 のトレードオフは、 の長い時間の間、アイドルフェーズにあるかもしれないが、SparkコンポーネントがYARNのリソース を消費することです。

これをパッチなしで修正するには、ハイブセッションを終了するか、クエリが完了したらMapReduce QLエンジンに戻す必要があります。色相を使用する場合、唯一の2番目のオプションがあります。

関連する問題