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' 카테고리의 다른 글

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

Hive 쿼리 - not like

 

·       Version : Hadoop 3.0.0-cdh6.3.2, Hive

 

Hive  또는 SQL에서 데이터를 조회할때, 특정 문자열이 포함되지 않는 데이터를 조회할때, WHERE 조건자에 not like ‘%something %’ 구문을 사용한다. 하지만 Hive SQL 에서 사용하는 문법은 약간 다르다. 아래 예제를 참고한다.

 

Query

SQL

select * from tableName where columnName not like '%something%';

Hive

select * from tableName where not (columnName like '%something%');

 

여러 조건을 적용하여 조회하는 경우 아래와 같은 쿼리를 사용할 있다. 아래 스크립트 예제는 col1 컬럼값이 ‘where1’ 이면서 col2 컬럼값이 ‘something’ 포함하지 않는 데이터를 조회한다.

select

       *

from tableName

where col1 = 'where1'

       and col2 = not (columnName like '%something%');

 

 

 

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

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석,  Hive, Hive 쿼리, Hive Query, 하이브 쿼리, Hive not like, 하이브 조건 쿼리

'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

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

Hive 파일 Merge

 

·       Version : Hadoop 3.0.0-cdh6.3.2, Hive

 

하이브에서 매퍼 단독 작업의 경우 파일이 많이 생성될 있다. 작은 사이즈의 파일이 많이 생성되면 HDFS 부담이 될수 있기 때문에 이럴 경우 파일을 Merge 하여 실행하는 것이 좋다. 아래 스크립터는 파일을 Merge 하는 설정이다.

-- 맵퍼 단독 작업일 머지

set hive.merge.mapfiles=true;

 

-- 맵리듀스 작업일 머지

set hive.merge.mapredfiles=true;

 

-- 테즈 작업일 머지

set hive.merge.tezfiles=true;

 

--테즈에서 실행하는지 확인

SET hive.execution.engine;

 

--테즈 엔진으로 설정

SET  hive.execution.engine=tez;

 

-- 머지 작업의 대상이 되는 파일 사이즈(32MB이하)

set hive.merge.smallfiles.avgsize=32000000;

 

-- 머지 파일을 묶을때 기준(256MB)

set hive.merge.size.per.task=256000000;

 

파일 Merge 할때, 너무 작은 크기의 파일을 대량으로 Merge 경우 Merge 하는 시간이 오래 걸릴수 있으니 주의해서 사용해야 한다.

 

 

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

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석,  Hive, Hive 쿼리, Hive Query, 하이브 파일 머지, Hive File Merge

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

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
YARN Node Labels (노드 레이블)  (0) 2020.01.16

+ Recent posts