복붙노트

[HADOOP] Java API를 사용하여 Hive에서 테이블 속성 가져 오기

HADOOP

Java API를 사용하여 Hive에서 테이블 속성 가져 오기

테이블 데이터베이스, 이름, 소유자 및 hdfs 위치 같은 하이브 metastore Java에서 metastore 클라이언트를 사용하여 테이블 속성을 가져 오려고합니다. 나는 테이블 데이터베이스와 이름을 알맞게 얻을 수 있다고 생각하지만, 소유자와 hdfs 위치 같은 것을 잡는 방법을 알아낼 수는 없습니다. 가능한가? 나는 이제 의사와 인터넷에서 몇 시간 동안이나 주사위를 찾지 않았다.

해결법

  1. ==============================

    1.다음과 같이 될 수 있습니다.

    다음과 같이 될 수 있습니다.

    org.apache.hadoop.hive.metastore.api.Table table=..........;
    org.apache.hadoop.hive.metastore.api.StorageDescriptor sd=table.getSd();
    String loc=sd.getLocation();
    String own=sd.getOwner();
    

    https://hive.apache.org/javadocs/r0.11.0/api/org/apache/hadoop/hive/metastore/api/Table.html https://hive.apache.org/javadocs/r0.11.0/api/org/apache/hadoop/hive/metastore/api/StorageDescriptor.html

  2. ==============================

    2.파티션 된 테이블 인 경우 다음을 수행 할 수 있습니다.

    파티션 된 테이블 인 경우 다음을 수행 할 수 있습니다.

    형식화 된 테이블 파티션 (partition_name = partition_value)을 설명하십시오.

    기본 hdfs 경로와 테이블 소유자를 표시합니다.

  3. ==============================

    3.Cloudera CDH 5.1.0 버추얼 박스에서 다음 명령을 실행했습니다.

    Cloudera CDH 5.1.0 버추얼 박스에서 다음 명령을 실행했습니다.

    $ hive -e "확장 된 tablename을 기술합니다"

    이 명령의 출력은 tablename, dbname, owner, createtime, location 외에 정보를 제공합니다. 자세한 내용은 다음 CWIKI 링크를 참조하십시오.

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Describe

  4. from https://stackoverflow.com/questions/33880050/get-table-properties-out-of-hive-using-java-api by cc-by-sa and MIT license