아래 링크 적극 참고

https://bigdataprogrammers.com/import-csv-data-into-hbase/

 

Import CSV data into HBase - BIG DATA PROGRAMMERS

In this post, we are having a data set. The format of the data file is CSV. We are going to import CSV data into HBase table.

bigdataprogrammers.com

 

 

 

기본 데이터가 아래와 같이 생겼다고 하자.

< data.tsv > < data.csv >

1    a    0001    eye

2    b    0010    ball

3    c    0011    sss

1,a,0001,eye

2,b,0010,ball

3,c,0011,sss

 

 

 

1.

먼저 위의 데이터를 hdfs 에 넣는다. 아래 명령어는 tsv 지만, csv 도 똑같은 방식으로 넣는다.

 

hdfs dfs -put data.tsv /data/data.tsv

hdfs dfs -put data.csv /data/data.csv

 

 

 

 

 

2.

hbase shell 에 들어가서 아래 명령어로 table 을 만든다.

 

$HBASE_HOME/bin/hbase shell

create "load_test_table", "cf1", "cf2" 

 

 

 

 

 

3.

tsv 는 아래 명령어로 load 한다.

 

$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns="HBASE_ROW_KEY,cf1:alphbet,cf2:byte,cf2:string" load_test_table /data/data.tsv

 

csv 는 아래 명령어로 load 한다.

 

$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns="HBASE_ROW_KEY,cf1:alphbet,cf2:byte,cf2:string" load_test_table /data/data.csv

 

 

데이터가 갖고 있는 열 순서대로

HBASE_ROW_KEY, cf1:alphbet, cf2:byte, cf2:string 에 들어간다.

 

즉,

첫번째 열의 값들 (1,2,3...) 은 => HBASE_ROW_KEY 에 들어감
두번째 열의 값들 (a,b,c...) 은 => column family(cf1) 의 column name(alphabet) 에 들어감 
세번째 열의 값들 (0001, 0010...) 은 => column family(cf2) 의 column name(byte) 에 들어감 
네번째 열의 값들 (eye,ball,sss....) 은 => column family(cf2) 의 column name(string) 에 들어감

실제 데이터를 살펴보면 아래와 같다.

 

 

 

 

 

+ Recent posts