Hive에서 하둡(dfs)명령 실행

 

·       Version : Hive

 

하이브(Hive)에서 하둡(dfs) 명령을 수행할 있다. 하이브에서 하둡 명령어를 사용하는 방법은 dfs 사용하고 마지막에 세미콜론(;) 입력한다.

dfs -ls /;

 

 

하이브에서 dfs 명령을 사용하는것이 배시쉘에서 hadoop dfs 동일한 명령을 사용하는것보다 효율적이다. 하이브는 현재 프로세스에서 명령을 수행하는 반면, 배시쉘을 사용할때에는 새로운 jvm 인스턴스를 구동하여 명령을 실행하기 때문이다. 아래와 같이 -help 사용하면 dfs에서 제공하는 도움말을 있다.

 

 

 

 

 

2020-05-18 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, Hive, 하이브, 하둡 쿼리, 하이브쿼리, hive query

'SW Engineering > Hadoop' 카테고리의 다른 글

Hive에서 하둡(dfs)명령 실행  (0) 2020.05.19
ZooKeeper 옵저버와 CLI  (0) 2020.05.19
Hive에서 쉘 명령 실행  (0) 2020.05.18
ZooKeeper 클라이언트 요청 처리  (0) 2020.05.18
ZooKeeper 멀티 서버 구성  (0) 2020.05.17
ZooKeeper 리더선출과 데이터 ACID 정책  (0) 2020.05.14

Hive에서 명령 실행

 

·       Version : Hive

 

하이브(Hive)에서 간단한 배시 (bash shell) 명령을 수행할 있다. 더이상 쉘을 수행하기 위해서 하이브 CLI 빠져나갈 필요가 없다. 하이브에서 쉘을 실행하는 방법은 ! 뒤에 명령어를 입력하고, 명령어 마지막에 세미콜론(;) 입력한다. 아래 예시는 간단히 에코로 문자를 반환하는 것과, 현재 경로를 표시한다.

! /bin/echo “Hello”;

! pwd;

 

 

명령을 실행할때, 사용자 입력이 필요한 명령은 실행해서는 안된다. 파이프와 파일 글로빙(globbing) 동작하지 않는다. 예를들어 ! ls *.hql 명령은 *.hql 이름을 가지는 하나의 파일만 찾아줄뿐, .hql 확장자를 가진 모든 파일을 찾아서 보여주지는 않는다.

 

 

2020-05-17 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, Hive, 하이브, 하둡 쿼리, 하이브쿼리, hive query

'SW Engineering > Hadoop' 카테고리의 다른 글

Hive에서 하둡(dfs)명령 실행  (0) 2020.05.19
ZooKeeper 옵저버와 CLI  (0) 2020.05.19
Hive에서 쉘 명령 실행  (0) 2020.05.18
ZooKeeper 클라이언트 요청 처리  (0) 2020.05.18
ZooKeeper 멀티 서버 구성  (0) 2020.05.17
ZooKeeper 리더선출과 데이터 ACID 정책  (0) 2020.05.14

HUE에서 10만행이상 브라우저에 출력하기

 

·       Version : Hadoop 3.0.0-cdh6.3.2, Hive, HUE

 

HUE(haddop User Experience) Apache Hadoop 클러스터와 함께 사용되는 에코시스템으로 Hive Impala, Spark Job등을 쉽게 질의할 있는 기반 사용자 인터페이스이다.

 

필자의 HUE 사용환경은 CDH(Cloudera Hadoop) 6.3버전에서 제공되는 에코 시스템으로 설치하였으며, Hive Impala 데이터 조회에 주로 사용하고 있다.

 

데이터를 분석팀에서 하둡을 주로 사용하는데, HUE에서 데이터 조회시 10만행 이상의 결과는  브라우저에 출력이 되지 않아 데이터를 다운로드 받지 못하니 해결해 달라는 요청이 있었다. 브라우저에 데이터가 노출되지 않으니 당연히 브라우저에서 다운로드 받은 엑셀파일에서도 데이터가 존재하지 않았다.

문제를 해결하기 위해서 HUE 환경설정에서 아래오 같이 -1값으로 설정하여 출력결과를 무제한으로 표시할 있도록 하였다.

[beeswax]

# A limit to the number of rows that can be downloaded from a query before it is truncated.

# A value of -1 means there will be no limit.

download_row_limit=-1

 

 


HUE 브라우저에서 대용량의 결과셋을 출력한다는 것은 시스템 성능에 문제를 발생시킬 있으므로 권장하지 않는다. 대용량 결과를 출력해야하는 경우, Hive Impala에서 직접 파일로 출력하여 사용하는것이 좋다.

INSERT OVERWRITE LOCAL DIRECTORY '/your_path'

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ':'

SELECT * FROM tablename;

 

 

 

 

2020-02-18 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석,  Hive, Hive 쿼리, Hive Query, 하이브 쿼리, HUE 사용, HUE 데이터, HUE 대용량 결과, HUE download_row_limit

'SW Engineering > Hadoop' 카테고리의 다른 글

ZooKeeper 시간 동기화와 네임스페이스 z노드  (0) 2020.05.07
Zookeeper 소개  (0) 2020.05.06
HUE에서 10만행이상 브라우저에 출력하기  (0) 2020.02.19
Hive 쿼리 - not like  (0) 2020.02.13
Hive 파일 압축  (0) 2020.02.07
Hive 파일 Merge  (0) 2020.02.04

Hive 파일 압축

 

·       Version : Hadoop 3.0.0-cdh6.3.2, Hive

 

하이브를 이용하여 INSERT DIRECTORY, CTAS문으로 파일을 생성할때, 원하는 타입의 형태로 파일을 압축 있다. 하이브에서 사용할 있는 압축 코덱은 다양하다.

·       4mc com.hadoop.compression.fourmc.FourMcCodec

·       gzip org.apache.hadoop.io.compress.GzipCodec

·       lzo com.hadoop.compression.lzo.LzopCodec

·       Snappy org.apache.hadoop.io.compress.SnappyCodec

·       bzip2 org.apache.hadoop.io.compress.BZip2Codec

·       lz4 org.apache.hadoop.io.compress.Lz4Codec

·       org.apache.hadoop.io.compress.GzipCodec

·       org.apache.hadoop.io.compress.DefaultCodec

·       org.apache.hadoop.io.compress.BZip2Codec

·       org.apache.hadoop.io.compress.SnappyCodec

·       com.hadoop.compression.lzo.LzoCodec

·       com.hadoop.compression.lzo.LzopCodec

 

압축 하기 위해서는 io.compression.codecs 설정에 압축 포맷이 명시되어 있어야 한다.

<property>

              <name>hive.exec.compress.intermediate</name>

              <value>true</value>

</property>

 

<property>

              <name>hive.exec.compress.output</name>

              <value>true</value>

</property>

 

<property>

              <name>mapred.map.output.compression.codec</name>

               <value>com.hadoop.compression.fourmc.FourMCHighCodec</value>

</property>

 

압축을 사용하기 위해서는 쿼리를 실행 하기전 처리 결과를 압축하기위한 설정과 코덱을 명시해야한다.

set hive.exec.compress.output=true;

set mapreduce.output.fileoutputformat.compress=true;

set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.BZip2Codec;

 

아래 스크립트는 Gzip으로 압축한다. 압축파일은 지정한 경로에 생성되며 파일 개수는 매퍼와 리듀서의 개수만큼 생성된다.

set hive.exec.compress.output=true;

set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

 

--table 내용을 /user/tables/ 경로에 CSV 형태로 압축 저장

INSERT OVERWRITE DIRECTORY 'hdfs:///user/tables/'

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

SELECT *

  FROM table

;

 

--table 내용을 temp_table 테이블에 저장

CREATE TABLE csvsample

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

LOCATION '/user/csv/'

AS

SELECT *

  FROM table

;

 

Hive에서압축 코덱을 사용하면 디스크 소비를 줄이면서 쿼리의 전체 시간 간격을 축소 있다.

 

[참고자료]

·       https://acadgild.com/blog/hive-compression-codecs

·       https://cwiki.apache.org/confluence/display/Hive/CompressedStorage

·       https://cwiki.apache.org/confluence/display/Hive/FileFormats

 

 

 

2020-02-06 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석,  Hive, Hive 쿼리, Hive Query, 하이브 파일 압축, Hive File compression

'SW Engineering > Hadoop' 카테고리의 다른 글

HUE에서 10만행이상 브라우저에 출력하기  (0) 2020.02.19
Hive 쿼리 - not like  (0) 2020.02.13
Hive 파일 압축  (0) 2020.02.07
Hive 파일 Merge  (0) 2020.02.04
Hive 통계 정보  (0) 2020.01.29
Hive 쿼리 실행계획 보기  (0) 2020.01.17

+ Recent posts