Hive CLI
· Version : Hadoop 3.0.0-cdh6.3.2, Hive
Hive CLI(Command Line Interface)는 하이브 쿼리를 실행하기 위한 명령 도구로, 쉘을 이용하여 사용자의 명령을 입력할 수 있다. 하이브 쿼리 실행시 다양한 옵션을 사용할 수 있으며, 대표적인 옵션은 아래와 같다.
· -e <query-string> : 커맨드라인으로 실행할 쿼리
· -f <filename> : 쿼리가 작성된 파일을 이용하여 실행할 경우
· --hiveconf <property=value> : 하이브 설정값 입력
· --hivevar <key=value> 쿼리에 사용할 변수 입력
hive --hiveconf mydb.data.name=queue --hivevar date=20190101 |
[하이브 쉘 입력]
하이브 CLI를 실행하고 쉘을 이용하여 사용한다.
-- 커맨드에서 hive 실행 $ hive --하이브 쉘에서 쿼리 실행 hive> select * from table; |
[커맨드 라인에서 하이브 명령 실행]
커맨드라인으로 하이브를 실행할때 -e 옵션을 사용한다.
-- 커맨드라인에서 하이브의 table 테이블 조회 $ hive -e "select * from table"
-- 쿼리의 실행 엔진과, 변수를 설정 $ hive -e 'select * from table where yymmdd=${hivevar:tDate}' \ --hiveconf hie.execution.engine=tez \ --hiveconf tez.queue.name=queue_name \ --hivevar Date=20190101 |
[파일로 저장된 쿼리 실행]
쿼리를 파일로 저장하여 해당 파일을 실행하는 방식으로 -f 옵션을 사용한다.
--sample.hql 파일에 저장되어 있는 쿼리 select * from table where yymmdd=${hivevar:targetDate}
-- -f 옵션을 사용하여 파일 쿼리 실행 및 변수 입력 $ hive -f sample.hql --hivevar Date=20190101 |
[하이브 로깅]
하이브 CLI는 log4j를 사용하여 로깅한다. 로깅 방법을 변경할때는 log4j 설정파일을 변경하거나 --hiveconf 옵션을 사용한다.
-- 로깅 레벨, 파일 위치 변경 hive --hiveconf hive.log.file=hive_debug.log \ --hiveconf hive.log.dir=./ \ --hiveconf hive.root.logger=DEBUG,DRFA |
[하이브 CLI 명령어]
Command |
Description |
Exit |
하이브 쉘 종료 |
Reset |
설정값 초기화 |
set <key>=<value> |
설정값 입력 |
set |
하이브의 설정값 출력 |
set -v |
하둡, 하이브의 설정값 출력 |
add file <> |
파일 추가 |
add files <> |
여러개의 파일 추가, 공백으로 경로 구분 |
add jar <> |
jar 파일 추가 |
add jars <> |
여러개의 jar 파일 추가, 공백으로 경로 구분 |
!<command> |
쉘 커맨드 실행 |
dfs <dfs command> |
하둡 dfs 커맨드 실행 |
jar 파일 추가는 사용자가 구현한 UDF, SerDe 등 자바 클래스를 사용할때, jar 파일 위치를 지정한다. 파일 추가는 스크립트나 UDF에서 내부적으로 사용하는 메타파일을 추가할때 사용한다.
-- 옵션 설정 hive> set mapred.reduce.tasks=32; -- 모든 옵션 값 확인 hive> set; -- CLI 상에서 설정한 옵션 초기화 hive> reset; -- 쉘커맨드 실행 hive> !ls -alh; -- dfs 커맨드 실행 hive> dfs -ls /user/; -- 파일 추가 hive> add file hdfs:///user/sample.txt; -- 여러개의 파일 추가. 공백으로 구분 hive> add files hdfs:///user/sample1.txt hdfs:///user/sample2.txt; -- jar 파일 추가 hive> add jar hdfs:///user/sample.jar; |
[참고자료]
· https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli
2019-12-11 / Sungwook Kang / http://sungwookkang.com
Hadoop, hive, 하이브 명령어, hive command, 하이브쉘, 하이브 커맨드, 빅데이터
'SW Engineering > Hadoop' 카테고리의 다른 글
MapReduce 메모리 부족으로 인한 쿼리 실패 (0) | 2019.12.14 |
---|---|
HiveServer2 와 Beeline (0) | 2019.12.13 |
HDFS Safe 모드 (0) | 2019.12.11 |
HDFS 커럽션 파일 확인 (0) | 2019.12.10 |
HDFS에서 파일 삭제시 바로 삭제 될까? (휴지통 기능) (0) | 2019.12.06 |