2020년 9월 20일 일요일

Apache Sqoop [1] - 설치[ Install ]


[ 개요 ]

전 프로젝트에서 mysql데이터를 hive table에 주기적으로 input하는 기능이 필요했다. 이런 상황에서 Data-pip-line을 구성하기 좋고 적용하기도 쉬운 Sqoop에 대해 알아보자.  

스쿱(Sqoop)은 관계형데이터베이스(Ex. Mysql,MariaDB)와 아파치 하둡간의 데이터 인아웃을 위한 CLI(Command Line Interface) 어플리케이션이다. RDB에서 데이터를 가져와 맵리듀스작업을 할 수 있고 그 반대도 가능하다. 장애컨트롤 뿐만 아니라 병렬처리까지 가능한 것이 장점이다.


[ 아키텍처 ]









중간에 위치한 Sqoop Tool은 Java로 프로그래밍되어 SQL to Hadoop, Hadoop to SQL 변환을 자유롭게 해준다.

Import : RDBMS에서 개별테이블을 가져와 한 행씩 HDFS 레코드로 처리된다. 레코드는 텍스트데이터, Avro, 이진데이터로 병렬로 저장된다. 

Export : HDFS에서 RDBMS 행데이터가 있는 파일집합을 만들어 내보낸다. 


[ 설치 ]

일단 Java와 Hadoop이 설치되어 있어야 한다.

설치할 경로에 스쿱 tar.gz파일 다운받는다.

$ cd /usr/local
$ wget http://mirror.navercorp.com/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz $ tar -xvf sqoop-1.4.7.tar.gz


스쿱관련 설정을 해준다.

$ vi /etc/profile
//아래 코드 추가
export SQOOP_HOME=/usr/local/sqoop-1.4.7.bin__hadoop-2.6.0
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SQOOP_HOME/bin:$PATH
$ source /etc/profile
$ cd $SQOOP_HOME/conf
$ mv sqoop-env-template.sh sqoop-env.sh
$ vi sqoop-env.sh
//주석을 제거하고 아래 코드를 추가한다.
export HADOOP_COMMON_HOME=/usr/local/hadoop/hadoop-3.2.1
export HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.2.1


위에서 Sqoop Tool은 Java기반으로 동작하기 때문에 mysql-connector-java-5.1.30.tar.gz을 다운받아서 Sqoop경로에 복사한다.

$ wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.30.tar.gz
$ cd /usr/local/mysql-connector-java-5.1.30
$ cp mysql-connector-java-5.1.30-bin.jar /usr/local/sqoop-1.4.7.bin__hadoop-2.6.0/lib/


설치 확인

$ sqoop-version



댓글 없음:

댓글 쓰기