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

Hive에서 콤마(,) 컬럼 구분 쿼테이션 내부의 콤마(“, , ”) 파싱 스킵하기

 

·       Version : Hadoop 3.0.0-cdh6.3.2

 

Hive 테이블에서 데이터를 로드할때, 특정 구분자를 이용해서 파싱하는 경우 파싱의 규칙을 미리 테이블을 생성할때 정의해야 한다. 아래 스크립트는 콤마(,) 컬럼을 구분하는 데이터에서 파싱을 하지 않아야 하는 콤마(,) 데이터는 더블 쿼테이션(“”)으로 감싸서 해당 문장이 파싱되지 않도록 하는 규칙이다.

 

예를 들어 아래와 같은 콤마로 구분된 텍스트 데이터가 있다고 , 컬럼 Col_1, Col_2, Col_3 파싱한다.

col_1,col_2,"col_3(a=3&b=40&c=NOTES&cid=1,10,33)"

 

create table tbl_a (

col_1 string

col_2 string

col_3 string

)

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ("separatorChar" = ",","quoteChar" = "\"")

 

이미 테이블이 생성되어 있는 경우에는 ALTER 구문으로 테이블의 속성을 변경할 있다.

ALTER TABLE tbl_a set SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ("separatorChar" = ",","quoteChar" = "\"")

 

 

 

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

 

Hadoop, Hive, 하이브, 하이브 콤마 파싱, SERDE, SERDEPROPERTIES, 서데, 서데 속성, ROW FORAT, 컬럼 파싱

Hive Buckets (버켓)

 

·       Version : Hadoop 3.0.0-cdh6.3.2, Hive

 

하이브는 쿼리 성능을 높이기 위해 버켓(Buckets)이라는 데이터 모델을 제공하며, 버켓은 지정된 칼럼의 값을 해쉬 처리하고 지정한 수의 파일로 나누어 저장한다. 조인에 사용되는 키로 버켓 컬럼을 생성하면 필요한 버켓만 조회하면 되기 때문에 전제 디렉터리를 풀스캔하는 것보다 훨씬 빠르게 처리할 있다.

파티션은 데이터를 디렉터리로 나누어 저장하는 방식이며 버켓은 데이터를 파일별로 나누어 저장한다. 아래 그림은 파티션과 버켓의 차이점을 쉽게 정의하고 있다.

 

 아래 스크립트는 버켓 테이블을 생성한다.

-- col2 버켓팅하여 20개의 파일에 저장

CREATE TABLE tbl1(

       col1 STRING,

       col2 STRING

)

CLUSTERED BY (col2) INTO 20 BUCKETS

LOCATION '/user/data/'

 

-- col2 버켓팅 하고, col1 기준으로 정렬

CREATE TABLE tbl2(

       col1 STRING,

       col2 STRING

)

CLUSTERED BY (col2) SORTED BY (col1) INTO 20 BUCKETS

LOCATION '/user/data/'

 

 

 

[참고자료]

https://data-flair.training/blogs/hive-partitioning-vs-bucketing/

 

 

 

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

 

Hadoop, hive, 하이브, hive buckets, 하이브 버켓

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

MapReduce JobTracker  (0) 2019.12.31
MapReduce (맵리듀스)  (0) 2019.12.28
Hive Buckets (버켓)  (0) 2019.12.27
Hive Skewed (스큐)  (0) 2019.12.24
Hive Partition 생성,수정,복구  (0) 2019.12.21
Hive Meta Database  (0) 2019.12.19

+ Recent posts