Apache Sqoop
What is Sqoop?
- Sqoop stands for SQl to hadOOP
- Sqoop은 구조화된 RDBMS와 Hadoop의 대용량 데이터들을 효율적으로 변환하여 주는 도구
- Oracle 또는 MySQL과 같은 RDBMS에서 하둡 분산 파일 시스템으로 데이터들을 가져와서 그 데이터들을 MapReduce로 변환을 하고, 그 변환된 데이터들을 다시 RDBMS로 내보낼 수 있음
- Sqoop은 또한 데이터의 pull과 push를 MapReduce를 이용하여 처리하기 때문에 장애 허용 능력뿐 아니라 병렬 처리가 가능함
Why sqoop?
- 자원에 대한 처리를 효과적이고 효율적으로 제어 가능
- 데이터 타입의 mapping과 conversion이 용이
- Sqoop record를 통한 metadata의 저장이 가능
Sqoop 2
: Sqoop 1의 많은 단점들로 인해 Sqoop2가 등장
Sqoop1 | Sqoop2 |
---|---|
Client-Side 설치 | Server-Side 설치 |
Connectors가 Local에 설치되어야 하므로 접속하는 Local마다 JDBC의 설치 필요 | Connectors가 필요한 서버 한 곳에만 설치되면 연결이 가능(only needs oneJDBC Driver) |
CLI 만 제공 | CLI 외에도 Web 및 Rest API를 통한 접속 가능 |
N/A | Workflow Manager인 Oozie와 통합된 처리 가능 |
Sqoop2 (Design Goals)
- 보안 및 기능별 분리: 역할 기반의 액세스와 사용
- 용이한 확장성: Connectors간의 중복된 기능이 없음
- 쉬운 사용: 하둡에 대한 지식 없어도 사용 가능하며, 통합된 기능으로 인해 시나리오에 따른 용이한 구성이 가능
Sqoop2 (Connection vs. Job Metadata)
- Connection: database 마다 고유한 작업. Stable, same value reused
- Job: table 마다 고유한 작업. Changing a lot with each execution
Sqoop2 (Workings)
- metadata에 Connectors 정보 등록
- metadata repository에 Connections과 Jobs 생성 가능
- 운영자는 적합한 Connection을 Job에서 실행 가능
- 관리자는 Connection 사용에 대한 Policy 정의
Sqoop2 (Security)
- 역할 기반의 액세스 객체를 통해 외부 시스템에 대한 보안 액세스 지원
- 관리자가 연결에 대한 생성과 수정 및 삭제를 관리
- 운영자는 만들어진 연결 기능을 사용
'Software Convergence > Hadoop' 카테고리의 다른 글
Hadoop2 HA(High Availability) 구성 및 환경변수 설정 (0) | 2018.07.25 |
---|---|
Apache Kafka 소개 (0) | 2018.07.20 |
ZooKeeper configuration 설정 (0) | 2018.07.19 |
네임노드가 실행되지 않는 문제의 해결 (0) | 2018.07.06 |