Hadoop] RDBMS to HBase (Using Sqoop & Pig) HADOOP

RDBMS에서 HBase로의 데이터 이전을 위해서는 여러개의 선택지가 있겠지만 CDH5(beta) Sqoop2 기반이라면 몇 가지 제한이 발생합니다.

Talend와 같은 ETL을 이용할 경우에도 CDH5(beta)를 정식 지원하지 않기 때문에(현 5.5.2 정식지원) 

Define Custom Hadoop Distribution 셋을 별도로 구성하거나(개인적으로 시도해 보았으나 실패… ㅠㅠ) 

tJava 컴포넌트를 이용 별도 처리를 해야만 합니다.

Sqoop(Sqoop2가 아닌)을 사용하게 되면 간단한 Script를 통해 RDBMS => HBase로의 Direct Import 가능하지만

IMPORT DATA FROM RDBMS TO HBASE USING SQOOP

http://technologywithvineet.com/import-data-from-rdbms-to-hbase-using-sqoop/

Sqoop2 기반이라면 이 역시… (아래 Sqoop vs Sqoop2간 기능비교 참조)

Feature Differnce – Sqoop and Sqoop2

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5/latest/CDH5-Installation-Guide/cdh5ig_sqoop_vs_sqoop2.html

image01

결국 해당 문제를 해결하기 위한 여러 WorkAround가 존재하겠지만

Sqoop2를 통한 RDBMS => HDFS, Pig를 통한 HDFS => HBase로의 데이터 이전 방법을 간단히 정리해 보고자 합니다.

해당 전체 프로세스를 Hue의 Workflow를 통해서도 구현 가능하겠지만 권한 이슈 등이 발생 할 수 있음으로 여기서는 그냥 삽질모드로…

1. RDBMS => HDFS (Using Sqoop2)

Sqoop2를 통한 데이터 이전 부분을 구현하기 위해서는

Hue DataBrowsers > Sqoop Transfer UI를 통한 방법

Sqoop Shell을 이용한 방법

중 하나를 선택할 수 있습니다.

Hue상에서 진행하는 것이 구성이나 이후 모니터링에 장점이 존재하지만 앞서 언급한 데로 Hue 계정 과 HDFS간 권한 이슈가 발생할 여지가 있음으로 여기서는 후자의 경우만 산정하도록 하겠습니다.

- 사실 구현하는 방법은 양측 모두 큰 차이가 없습니다.

우선 Connector를 구현합니다.

생성은 create connection –cid <number> Command로 가능하고

Hue에서는 아래와 같이 항목을 입력하시면 되고

image

sqoop2 Shell에서는 아래 링크의 “Full Import Demo” 부분을 참조하시면 됩니다.

Sqoop2 Quickstart

https://cwiki.apache.org/confluence/display/SQOOP/Sqoop2+Quickstart

이후 Job 구성까지 마친 후

image02

start job –jid <number> 명령을 통해 JOB을 수행하고 해당 경로에 정상적으로 파일이 생성되었는지 확인합니다.

2. HDFS => HBase(Using Pig)

Pig을 이용한 HBase로의 Data Import 방법은 아래 링크를 참고 하시길 바랍니다.

- 일반적으로는 Store in HBase

Pig and HBase with LucidWorks Big Data – March 4 2013, By David Arthur

http://www.lucidworks.com/blog/pig-and-hbase-with-lucidworks-big-data/


덧글

댓글 입력 영역

Google Analytics