Sqoop
스쿱(Sqoop)
- 하둡에코시스템에 수집 부분
- RDBMS와 HDFS간의 효율적인 데이터 전송 지원 도구
- JDBC와 호환되는 모든 RDBMS에 사용 가능
스쿱 임포트(Sqoop Import)
- RDBMS에서 HDFS Storage로 저장
- 스쿱잡은 맵(Map)만 수행하여 HDFS Storage에 저장
스쿱 익스포트(Sqoop Export)
- HDFS Storage에서 RDBMS로 저장
- 스쿱잡은 맵(Map)만 수행하여 RDBMS에 저장
- RDBMS에 Table은 생성돼 있어야 함
스쿱v1 VS 스쿱v2
- 복잡성과 보안 취약으로 v2에서는 다음과 같은 사항을 지원하지 않음
- Kerberos보안 통함: v1(지원함), v2(지원하지 않음)
- RDBMS에서 하이브나 HBase로 데이터 전송: v1(지원함), v2(지원하지 않음)
스쿱 명령어
RDBMS 보기
- sqoop list-databases –connect jdbc:mysql://{host_name} –username {username} –password {password}
Table 보기
- sqoop list-tables –connect jdbc:mysql://{host_name}/{db_name} –username {username} –password {password}
스쿱 임포트
- sqoop import –connect jdbc:mysql://{host_name}/{db_name} –username {username} –password {password} –table {table_name} -m 1 –target-dir {hdfs_target_dir}
스쿱 익스포트
- sqoop export –connect jdbc:mysql://{host_name}/{db_name} –username {username} –password {password} –table {table_name} -m 1 –export-dir {hdfs_export_dir}
HDFS 확인
- hdfs dfs -ls {hdfs_target_dir}
- hdfs dfs -cat {hdfs_target_dir}/part-m-00000 : 구분자 콤마 : Map잡이 하나이므로 파일 하나만 생김