Hive는 Hadoop 용 데이터웨어 하우스 데이터베이스이며 모든 데이터베이스 및 테이블 데이터 파일은 기본적으로 /user/hive/warehouse HDFS 위치에 저장되며, 기타 Hadoop 호환 파일 시스템의 사용자 지정 위치에 Hive 데이터웨어 하우스 파일을 저장할 수도 있습니다.
Hive를 사용할 때, 2 개의 서로 다른 데이터 저장소에 대해 알아야합니다.
- Hive Metastore
- Hive Data warehouse Location (실제 테이블 데이터가 저장된 위치)
Hive Metastore
Hive Metastore는 데이터베이스 및 테이블에 대한 Meta 데이터를 저장하는 데 사용되며 기본적으로 Derby 데이터베이스를 사용합니다. 이것을 MySQL 및 Postgress 등과 같은 RDBMS 데이터베이스로 변경할 수 있습니다. 기본적으로 Metastore 데이터베이스 이름은 metastore_db
입니다.
Hive Table Location (Hive Data warehouse)
Hive는 기본적 /user/hive/warehouse
으로 HDFS 파일 시스템의 위치에 테이블 파일을 저장 합니다. Hive를 사용하기 전에 HDFS에서 이러한 디렉터리를 만들어야합니다.
이 위치에서 사용자가 만든 모든 데이터베이스의 디렉터리와 사용하는 테이블 이름이있는 하위 디렉터리를 찾을 수 있습니다.
1. 속성에서 스토리지 경로 가져 오기
위치가 다른 경우 hive.metastore.warehouse.dir
속성 에서 경로를 가져올 수 있으며 Hive Beeline CLI
터미널 에서 다음 명령을 실행하여 가져올 수 있습니다 .
set hive.metastore.warehouse.dir;
hive.metastore.warehouse.dir=/user/hive/warehouse
2. 구성 파일에서 스토리지 경로 가져 오기
$HIVE_HOME/conf/hive-site.xml
파일 에서 hive.metastore.warehouse.dir
속성 값을 찾아 경로를 가져올 수도 있습니다.
3. Hive 명령 사용해서 경로 가져 오기
아래 명령을 실행하여 테이블의 하이브 스토리지 경로를 가져올 수도 있습니다.
hive -S -e "DESCRIBE FORMATTED table_name;" | grep 'Location' | awk '{ print $NF }'
테이블 위치는 SHOW CREATE TABLE하이브 터미널에서 명령을 실행하여 가져올 수도 있습니다 .
SHOW CREATE TABLE table_name;
(or)
DESCRIBE FORMATTED table_name;
4. Hive 테이블 파티션 위치
Hive에 파티션 된 테이블 이 있고 각 파티션 파일의 위치가 다른 경우 아래 명령을 사용하여 HDFS에서 각 파티션 파일 위치를 가져올 수 있습니다 .
DESCRIBE FORMATTED db_name.table_name PARTITION (name=value)
Reference
[1] https://cwiki.apache.org/confluence/display/Hive/Home#Home-HiveDocumentation
'ML Engineering > Hadoop and Hive' 카테고리의 다른 글
[Hive] 파일 포맷 (Storage Formats) (0) | 2021.05.23 |
---|---|
[Hive] 관리형(Managed) 테이블과 외부(External) 테이블 (0) | 2021.05.23 |
[Hive] Hive DDL Commands (0) | 2021.05.23 |
[Hive] 데이터 유형 (Type) (0) | 2021.05.23 |
[Hive] Apache Hive 란? (0) | 2021.05.23 |