일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Java
- 파이썬
- tensorflow
- python
- graph
- scrapy
- LSTM
- yarn
- C
- C언어
- RNN
- 그래프이론
- recursion
- NumPy
- 텐서플로
- codingthematrix
- 하둡2
- 알고리즘
- hadoop2
- 딥러닝
- 선형대수
- HelloWorld
- collections
- effective python
- 주식분석
- GRU
- 코딩더매트릭스
- hive
- Sort
- 하이브
- Today
- Total
EXCELSIOR
스쿱(sqoop) 설치 본문
스쿱은 현재 스쿱1과 스쿱2라는 두 가지 버전이 있다.
스쿱1 |
스쿱2 |
클라이언트 모델 |
클라이언트/서버 모델 |
CLI로 스쿱 실행 |
CLI, 웹, RESTAPI를 통한 스쿱 실행 |
하둡 보안 적용 |
하둡 보안, 데이터베이스와 같은 외부 시스템 접근 권한 제어 가능 |
리소스 관리 정책 없음 |
리소스 관리 정책 설정 가능 |
두 버전의 가장 큰 차이점은 클라이언트/서버 모델의 도입니다. 스쿱1은 클라이언트마다 스쿱과 JDBC 드라이버를 설치하지만 스쿱2는 스쿱 서버에만 스쿱과 JDBC를 설치하면 된다. 이번 포스팅에서는 교재에 나와있는 대로 스쿱1을 설치해 본다.
1. 스쿱 설치 및 실행
http://mirror.apache-kr.org/sqoop/ 에서 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz파일을 다운로드 한다.
다운로드가 완료되었으면 압축을 푼다. (저는 /usr/local/hadoop2/ 에다가 풀었습니다.)
/usr/local/hadoop2# tar xvfz sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
압축이 해제되면 스쿱 설치 디렉터리에서 sqoop 명령어를 실행한다.
/usr/local/hadoop2# cd sqoop-1.4.6.bin__hadoop-2.0.4-alpha /usr/local/hadoop2/sqoop-1.4.6.bin__hadoop-2.0.4-alpha# bin/sqoop #결과 Error: /usr/local/hadoop-2.7.3/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../hadoop does not exist! Please set $HADOOP_COMMON_HOME to the root of your Hadoop installation.
위와 같은 오류가 발생한 이유는 스쿱용 하둡 디렉터리를 설정하지 않아서 발생한 오류다. 스쿱이 맵리듀스 잡 실행을 요청하려면 하둡의 홈 디렉터리를 알고 있어야 한다. 스쿱은 스크립트 실행 환경변수를 conf 디렉터리의 sqoop-env.sh에서 설정한다.
스쿱을 처음 설치한 경우에는 템플릿 파일 밖에 없으므로 다음과 같이 sqoop-env.sh를 생성한 뒤 다음과 같이 설정한다.
/usr/local/hadoop2/sqoop-1.4.6.bin__hadoop-2.0.4-alpha# mv conf/sqoop-env-template.sh conf/sqoop-env.sh /usr/local/hadoop2/sqoop-1.4.6.bin__hadoop-2.0.4-alpha# vi conf/sqoop-env.sh #Set path to where bin/hadoop is available export HADOOP_COMMON_HOME=/usr/local/hadoop-2.7.3 #Set path to where hadoop-*-core.jar is available export HADOOP_MAPRED_HOME=/usr/local/hadoop-2.7.3
sqoop-env.sh를 수정한 뒤 다시 sqoop 명령어를 실행해 본다. 아래와 Warning이 여러 개 나타나는데 이는 하이브 연동을 위한 HCatalog, 어큐물로 및 HBase 연동을 위한 주키퍼 경로가 설정돼 있지 않다는 메시지 이다.
스쿱은 하둡 경로만 설정되어 있으면 기본 기능은 수행할 수 있다.
/usr/local/hadoop2/sqoop-1.4.6.bin__hadoop-2.0.4-alpha# bin/sqoop Warning: /usr/local/hadoop-2.7.3/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../hbase does not exist! HBase imports will fail. Please set $HBASE_HOME to the root of your HBase installation. Warning: /usr/local/hadoop-2.7.3/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../hcatalog does not exist! HCatalog jobs will fail. Please set $HCAT_HOME to the root of your HCatalog installation. Warning: /usr/local/hadoop-2.7.3/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../accumulo does not exist! Accumulo imports will fail. Please set $ACCUMULO_HOME to the root of your Accumulo installation. Warning: /usr/local/hadoop-2.7.3/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../zookeeper does not exist! Accumulo imports will fail. Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation. Try 'sqoop help' for usage.
다음으로 sqoop help를 실행해본다. help명령어를 실행하면 다음과 같이 다양한 스쿱 명령어가 출력된다.
/usr/local/hadoop2/sqoop-1.4.6.bin__hadoop-2.0.4-alpha# bin/sqoop help Available commands: codegen Generate code to interact with database records create-hive-table Import a table definition into Hive eval Evaluate a SQL statement and display the results export Export an HDFS directory to a database table help List available commands import Import a table from a database to HDFS import-all-tables Import tables from a database to HDFS import-mainframe Import datasets from a mainframe server to HDFS job Work with saved jobs list-databases List available databases on a server list-tables List available tables in a database merge Merge results of incremental imports metastore Run a standalone Sqoop metastore version Display version information See 'sqoop help COMMAND' for information on a specific command.
help뒤에 해당 commands들을 입력하면 다음과 같이 구체적인 사용법이 출력된다.
/usr/local/hadoop2/sqoop-1.4.6.bin__hadoop-2.0.4-alpha# bin/sqoop help import usage: sqoop import [GENERIC-ARGS] [TOOL-ARGS] Common arguments: --connectSpecify JDBC connect string --connection-manager Specify connection manager class name --connection-param-file Specify connection parameters file --driver Manually specify JDBC driver class to use --hadoop-home Override $HADOOP_MAPRED_HOME_ARG --hadoop-mapred-home Override $HADOOP_MAPRED_HOME_ARG --help Print usage instructions -P Read password from console --password Set authentication password --password-alias Credential provider password alias --password-file Set authentication password file path --relaxed-isolation Use read-uncommitted isolation for imports --skip-dist-cache Skip copying jars to distributed cache --username Set authentication username --verbose Print more information while working (생략)
마지막으로 MS-SQL욜 JDBC 드라이버를 설치한다. https://www.microsoft.com/ko-KR/download/details.aspx?id=11774 에 접속하여 다운로드 받은 뒤 jar파일을 스쿱의 lib 디렉터리로 복사하면 된다.
'DataBase > Hadoop' 카테고리의 다른 글
SQL-On-Hadoop(SQL-온-하둡) 개념 및 종류 (0) | 2016.12.09 |
---|---|
스쿱(sqoop)과 MS-SQL 연동하기 (0) | 2016.12.08 |
아파치 스쿱(Apache Sqoop) (1) | 2016.12.07 |
하이브 버킷(Hive Bucket) (0) | 2016.11.30 |
하이브 조인(Hive Join) (0) | 2016.11.30 |