Azure HDInsight を使用した Apache Hive のトラブルシューティング
Apache Ambari で Apache Hive ペイロードを操作するときに発生する主な質問とその解決策について説明します。
Hive metastore をエクスポートして別のクラスターにインポートする方法
解決手順
Secure Shell (SSH) クライアントで HDInsight クラスターに接続します。 詳細については、「その他の情報」をご覧ください。
metastore をエクスポートする HDInsight クラスターで次のコマンドを実行します。
for d in `hive -e "show databases"`; do echo "create database $d; use $d;" >> alltables.sql ; for t in `hive --database $d -e "show tables"` ; do ddl=`hive --database $d -e "show create table $t"`; echo "$ddl ;" >> alltables.sql ; echo "$ddl" | grep -q "PARTITIONED\s*BY" && echo "MSCK REPAIR TABLE $t ;" >> alltables.sql ; done; done
このコマンドによって、allatables.sql という名前のファイルが生成されます。
新しい HDInsight クラスターに alltables.sql ファイルをコピーし、次のコマンドを実行します。
hive -f alltables.sql
この解決手順のコードでは、新しいクラスターのデータ パスが元のクラスターのデータ パスと同じであると想定しています。 データ パスが異なる場合は、生成された alltables.sql
ファイルを手動で編集して、変更を反映できます。
その他の情報
クラスターにある Hive のログを特定する方法
解決手順
SSH を使用して HDInsight クラスターに接続します。 詳細については、「その他の情報」をご覧ください。
Hive クライアント ログを表示するには、次のコマンドを使用します。
/tmp/<username>/hive.log
Hive metastore ログを表示するには、次のコマンドを使用します。
/var/log/hive/hivemetastore.log
Hive サーバー ログを表示するには、次のコマンドを使用します。
/var/log/hive/hiveserver2.log
その他の情報
クラスターで特定の構成を使って Hive シェルを起動する方法
解決手順
Hive シェルの開始時に構成のキーと値のペアを指定します。 詳細については、「その他の情報」をご覧ください。
hive -hiveconf a=b
次のコマンドを使用して、Hive シェルの効果的な構成をすべて一覧表示します。
hive> set;
たとえば、デバッグ ログの記録が有効になっている Hive シェルを開始するには、コンソールで次のコマンドを使用します。
hive -hiveconf hive.root.logger=ALL,console
その他の情報
クラスターのクリティカル パスで Apache Tez DAG データを分析する方法
解決手順
クラスターのクリティカル パスで Apache Tez 有向非巡回グラフ (DAG) を分析するには、SSH を使用して HDInsight クラスターに接続します。 詳細については、「その他の情報」をご覧ください。
コマンド プロンプトで、次のコマンドを実行します。
hadoop jar /usr/hdp/current/tez-client/tez-job-analyzer-*.jar CriticalPath --saveResults --dagId <DagId> --eventFileName <DagData.zip>
次のコマンドを使用して、Tez DAG の分析に使用できる他のアナライザーの一覧を表示します。
hadoop jar /usr/hdp/current/tez-client/tez-job-analyzer-*.jar
サンプル プログラムを最初の引数として指定する必要があります。
有効なプログラム名は次のとおりです。
- ContainerReuseAnalyzer: DAG のコンテナーの再利用の詳細を出力します。
- CriticalPath: DAG のクリティカル パスを特定します。
- LocalityAnalyzer: DAG の局所性の詳細を出力します。
- ShuffleTimeAnalyzer: DAG のシャッフル時間の詳細を分析します。
- SkewAnalyzer: DAG の傾きの詳細を分析します。
- SlowNodeAnalyzer: DAG のノードの詳細を出力します。
- SlowTaskIdentifier: DAG の遅いタスクの詳細を出力します。
- SlowestVertexAnalyzer: DAG の最も遅い頂点の詳細を出力します。
- SpillAnalyzer: DAG の書き込みの詳細を出力します。
- TaskConcurrencyAnalyzer: DAG のタスク コンカレンシーの詳細を出力します。
- VertexLevelCriticalPathAnalyzer: DAG のクリティカル パスを頂点レベルで特定します。
その他の情報
クラスターから Tez DAG データをダウンロードする方法
解決手順
Tez DAG データは次の 2 つの方法で収集できます。
コマンドラインから:
SSH を使用して HDInsight クラスターに接続します。 コマンド プロンプトで次のコマンドを実行します。
hadoop jar /usr/hdp/current/tez-client/tez-history-parser-*.jar org.apache.tez.history.ATSImportTool -downloadDir . -dagId <DagId>
Ambari Tez ビューを使用して:
- Ambari に移動します。
- Tez ビューに移動します (右上隅のタイル アイコンの裏に隠れています)。
- 表示する DAG をクリックします。
- [データのダウンロード] を選択します。
その他の情報
SSH を使用して HDInsight クラスターに接続する
次のステップ
問題がわからなかった場合、または問題を解決できない場合は、次のいずれかのチャネルでサポートを受けてください。
Azure コミュニティのサポートを通じて Azure エキスパートから回答を得る。
カスタマー エクスペリエンスを向上させるための Microsoft Azure の公式アカウントの @AzureSupport に連絡する。 Azure コミュニティで適切なリソース (回答、サポート、エキスパートなど) につながる。
さらにヘルプが必要な場合は、Azure portal からサポート リクエストを送信できます。 メニュー バーから [サポート] を選択するか、 [ヘルプとサポート] ハブを開いてください。 詳細については、「Azure サポート要求を作成する方法」を参照してください。 サブスクリプション管理と課金サポートへのアクセスは、Microsoft Azure サブスクリプションに含まれていますが、テクニカル サポートはいずれかの Azure のサポート プランを通して提供されます。