Sqoop 개요
What is Sqoop
- SQL to Hadoop
- Hadoop과 관계형 데이터베이스 간에 데이터를 전송할 수 있도록 설계된 오픈소스 소프트웨어
- 데이터를 importing, exporting하는데 MapReduce가 사용된다.
-m
옵션으로 job을 진행하는데 쓰일 mapper의 수를 제한할 수 있다.
Import
- localhost에게 movielens database에 대한 모든 권한 부여
GRANT ALL PRIVILEGES ON movielens.* to ''@'localhost';
- Import data from MySQL to HDFS
sqoop import --connect jdbc:mysql://localhost/movielens --driver
com.mysql.jdbc.Driver --table movies
- Import data from MySQL directly into Hive
sqoop import --connect jdbc:mysql://localhost/movielens --driver
com.mysql.jdbc.Driver --table movies --hive-import
- Incremental imports
- Hadoop과 database를 주기적으로 동기화
--check-column
, --last-value
--check-column
으로 지정된 colum의 값이 --last-value
에 지정된 값보다 큰 행만 import
Export
- Export data from Hive to MySQL
sqoop export --connect jdbc:mysql://localhost/movielens -m 1 --driver
com.mysql.jdbc.Driver --table exported_movies --export-dir
/apps/hive/warehouse/movies --input-fields-terminated-by '\0001‘
- 타겟 table이 MySQL에 존재한 상태여야함, 여기서는 exported_movies
--input-fields-terminated-by
는 delimeter를 통해 구분되는지, 여기서는 ASCII value가 1인 것