Azure HDInsight를 사용하여 Apache Hive 문제 해결
Apache Ambari에서 Apache Hive 페이로드를 사용할 때의 주요 질문 사항 및 해결 방법을 알아봅니다.
SSH(Secure Shell) 클라이언트를 사용하여 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이라는 파일을 생성합니다.
alltables.sql 파일을 새 HDInsight 클러스터에 복사하고 다음 명령을 실행합니다.
hive -f alltables.sql
해결 단계의 코드는 새 클러스터의 데이터 경로가 이전 클러스터의 데이터 경로와 동일하다고 가정합니다. 데이터 경로가 다른 경우 생성된 alltables.sql
파일을 수동으로 편집하여 변경 내용을 반영할 수 있습니다.
SSH를 사용하여 HDInsight 클러스터에 연결합니다. 자세한 내용은 더 보기를 참조하세요.
Hive 클라이언트 로그를 보려면 다음 명령을 사용합니다.
/tmp/<username>/hive.log
Hive 메타스토어 로그를 보려면 다음 명령을 사용합니다.
/var/log/hive/hivemetastore.log
Hive 서버 로그를 보려면 다음 명령을 사용합니다.
/var/log/hive/hiveserver2.log
Hive 셸을 시작할 때 구성 키-값 쌍을 지정합니다. 자세한 내용은 더 보기를 참조하세요.
hive -hiveconf a=b
Hive 셸에서 모든 유효 구성을 나열하려면 다음 명령을 사용합니다.
hive> set;
예를 들어 다음 명령을 사용하여 콘솔에서 디버그 로깅이 사용하도록 설정된 상태로 Hive 셸을 시작합니다.
hive -hiveconf hive.root.logger=ALL,console
- Hive configuration properties(Hive 구성 속성)
클러스터에 중요한 그래프에서 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에 가장 느린 꼭지점 정보를 출력합니다.
- SlowNodeAnalyzer: DAG에 분산 정보를 출력합니다.
- TaskConcurrencyAnalyzer: DAG에 작업 동시성 정보를 출력합니다.
- VertexLevelCriticalPathAnalyzer: DAG에서 꼭짓점 수준의 중요 경로를 찾습니다.
Tez DAG 데이터를 수집하는 방법에는 다음 두 가지가 있습니다.
명령줄에서:
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를 선택합니다.
- 데이터 다운로드를 선택합니다.
문제가 표시되지 않거나 문제를 해결할 수 없는 경우 다음 채널 중 하나를 방문하여 추가 지원을 받으세요.
Azure 커뮤니티 지원을 통해 Azure 전문가로부터 답변을 얻습니다.
사용자 환경을 개선하기 위한 공식 Microsoft Azure 계정인 @AzureSupport와 연결합니다. Azure 커뮤니티를 적절한 리소스(답변, 지원 및 전문가)에 연결합니다.
도움이 더 필요한 경우 Azure Portal에서 지원 요청을 제출할 수 있습니다. 메뉴 모음에서 지원을 선택하거나 도움말 + 지원 허브를 엽니다. 자세한 내용은 Azure 지원 요청을 만드는 방법을 참조하세요. 구독 관리 및 청구 지원에 대한 액세스 권한은 Microsoft Azure 구독에 포함되어 있으며, Azure 지원 플랜 중 하나를 통해 기술 지원이 제공됩니다.