SW Engineering/Hadoop

Hive CLI

SungWookKang 2019. 12. 12. 01:03
반응형

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://wikidocs.net/24771

·       https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli

 

 

 

2019-12-11 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, hive, 하이브 명령어, hive command, 하이브쉘, 하이브 커맨드, 빅데이터

반응형