私は、複数のhqlファイルを呼び出すシェルで書かれたフレームワークを持っています。Hive -fは毎回新しいセッションを作成しています
ハイブをfile1.hql -f
ハイブ-f file2.hql
ハイブ-f file3.hql
各ハイブ-fコマンドを新しいセッションを作成し、実行するために多くの時間を取ってコマンド。多くの場合、これらのファイルの実際のクエリは迅速に実行されますが、大部分の時間は新しいセッション作成に使用されます。
デーヴハイブサポートセッションポーリング/またはhqlファイルで一度セッションを作成し、他のすべてのハイブ-fコールで再利用する他のメカニズム?
良い方法:新しいクエリを1つのファイルに追加し、最後にすべてのクエリを1つのバッチで実行します。悪いやり方:あなたが今やっていること。醜い方法: 'hive'が作成されるとすぐに各クエリを実行するように、Linux **の名前付きパイプ**を使用してください。 http://www.linuxjournal.com/content/using-named-pipes-fifos-bash –
質問を説明しながら、私はそれをとてもシンプルに保つようにしました。私の実際の事例では、hiveコマンドはフレームワーク内に1つずつ (シーケンシャル)存在しません。その間に他のロジックがあり、すべてのhqlコンテンツを1つのファイルに保存して実行することはできません。 – Jobs