Sqoop 설치 (feat. Linux)
Sqoop - CLI (Command Line Interface), # CLI (Command Line Interface) < - > GUI (Graphic User Interface)
*Sq : SQL, oop : Hadoop
-> Sq + oop = Sqoop
Sqoop은 hadoop의 hdfs영역에 파일을 저장/처리하며 sql의 db와 hdfs를 연동하여 파일을 저장/처리하게 해준다.
**설치
1. http://archive.apache.org/dist/sqoop/
Index of /dist/sqoop
archive.apache.org
위 링크에서 최신버전의 *.gz 파일을 다운받는다. (작성 시점 최신버전 : sqoop-1.4.7.tar.gz)
2. 압축해제
tar -xvzf 파일명 (e.g. tar -xvzf sqoop-1.4.7.tar.gz)
3. 파일명 간소화
예) sqoop-1.4.7.bin_hadoop-2.6.0.tar -> sqoop-1.4.7
=> mv sqoop-1.4.7.bin_hadoop-2.6.0.tar sqoop-1.4.7
4. 압축 해제한 디렉토리 위치 옮기기
mv sqoop-1.4.7 ~/
5. .bashrc 편집
-> nano .bashrc
-> export SQOOP_HOME=/home/hdoop/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin
위 두줄을 export 마지막 부분에 추가
-> 저장(Ctrl+O) 후 나가기(Ctrl+x)
-> source .bashrc (.bashrc 실행 )
Sqoop은 java기반 프로그램이다. 그래서 Sqoop에서 MySQL DB를 연동하려면 JDBC(Java DataBase Connectivity) 규칙을 따라야한다. 그래서 Sqoop에서 MySQL로 접근하려면 JDBC Driver가 있어야한다.
- Driver를 인식시키는 방법
1. 설정 파일 편집
2. Sqoop의 지정된 디렉토리에 Driver를 넣기 (Sqoop의 lib 디렉토리)
여기선 2번의 방법을 이용할건데
현재 Sqoop 최신 버전의 lib 디렉토리에 commons-lang3-3.4.jar 파일에서 오류가 있다.
그래서 예전버전(ver 2.6)의 commons-lang-2.6.jar 파일을 대신 이용해야한다.
6. Sqoop/lib 디렉토리의 commons-lang3-3.4.jar 비활성화
- cd sqoop-1.4.7/lib
- mv commons-lang3-3.4.jar commons-lang3-3.4.jar.bak (뒤에 .bak을 붙혀줌으로서 파일의 확장명을 바꾼것)
7. commons-lang-2.6.jar 다운로드
https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/
Central Repository: commons-lang/commons-lang/2.6
repo1.maven.org
위 링크에서 2.6버전을 다운받는다
8. 다운받은 2.6 버전을 Sqoop/lib 안에 넣는다
mv commons-lang-2.6.jar ~/Sqoop-1.4.7/lib
9. mysql-connector도 Sqoop의 lib 디렉토리에 넣어야 한다. (MySQL 설치할 때 다운로드 했던 파일)
cp mysql-connector-java-8.0.24.jar ~/Sqoop-1.4.7/lib
10. Hadoop 재실행
- stop-all.sh
- start-all.sh
11. Sqoop이 잘 작동하는지 확인
- sqoop list-databases --connect jdbc:mysql://localhost:3306/?serverTimezone=UTC --username user1 --password user1pwd
위의 명령어를 실행하면 현재 접속한 MySQL의 DB에 있는 리스트가 뜬다.