hive-jdbc-0.7.1-cdh3u5.jar を使用しています。EMR でメモリを大量に消費するクエリを実行していて、失敗することがあります。ジョブ トラッカーを見ると、クエリが強制終了されていることがわかり、次のエラーが表示されます。
java.io.IOException: ゼロ以外のステータス 137 でタスク プロセスが終了しました
ただし、Hive JDBC ドライバーの execute() 呼び出しはこれを検出せず、ハングしたままになります。例外はキャッチされません。何か案は?ありがとう:
ST stQuery = MY_QUERY;
試す {
ステートメント stmt = conn.createStatement();
stmt.execute(stQuery.render()); // ジョブが強制終了されたことを知らずにここでハングします。例外は発生しません。
}
キャッチ(SQLException sqle){
sqle.printStackTrace();
log.error("クエリの実行に失敗しました");
戻る;
}