- [Sqoop] 설치 및 시작2020년 06월 25일
- 홀쑥
- 작성자
- 2020.06.25.:24
하둡 기준 import, export
스쿱 다운로드
Sqoop은 1버전이 복잡해서 간소한 것이 2버전이라 1버전으로
dn01의 root 계정에서
# cd /tmp
# wget http://mirror.apache-kr.org/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
# tar xzvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
# mkdir -p /opt/sqoop/1.4.7
# mv sqoop-1.4.7.bin__hadoop-2.6.0/* /opt/sqoop/1.4.7/
# ln -s /opt/sqoop/1.4.7 /opt/sqoop/current
MYSQL Connector 다운로드 및 sqoop 의 lib로 복사
sqoop은 데이터베이스 드라이버가 필요하기 때문에 Connector 필요함
# cd /tmp
# wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.38.tar.gz
# tar xzvf mysql-connector-java-5.1.38.tar.gz
# cd mysql-connector-java-5.1.38
# mv mysql-connector-java-5.1.38-bin.jar /opt/sqoop/current/lib/
# cd ~
소유권 hadoop에게 넘겨주기
# chown -R hadoop:hadoop /opt/sqoop/
# su - hadoop
hadoop 계정에서 환경변수 설정
# vi ~/.bash_profile
맨 밑에 추가
#### SQOOP 1.4.7 ######################
export SQOOP_HOME=/opt/sqoop/current
export PATH=$PATH:$SQOOP_HOME/bin
#### SQOOP 1.4.7 ######################저장하고 확인하기 이후 적용
# source ~/.bash_profile
스쿱 환경설정
# cd $SQOOP_HOME/conf
# mv sqoop-env-template.sh sqoop-env.sh
# vi sqoop-env.sh
export HADOOP_COMMON_HOME=/opt/hadoop/current
export HADOOP_MAPRED_HOME=/opt/hadoop/current
export HIVE_HOME=/opt/hive/current맞는 값 주석 풀고 입력
저장 후 확인
스쿱 설치 확인
# sqoop-version
스쿱 라이브러리를 하둡에 복사
# cd $SQOOP_HOME
# cp sqoop-1.4.7.jar /opt/hadoop/current/share/hadoop/tools/lib/
mariadb active인지 확인
# systemctl status mariadb.service
dn02에서
# ssh dn01
# mysql -u root -p
> create database sqoopdemo;
> use sqoopdemo;
create table departments(
department_id int(10) unsigned not null,
department_name varchar(30) not null,
primary key (department_id));> show tables;
insert into departments (department_id,department_name) values
(1,"Fitness"),(2,"Footware"),(3,"Apparel"),(4,"Golf"),(5,"Outdoor"),(6,"Fanshop");dn01 에서
RDBMS -> Hadoop (import)
-- 1) 데이터베이스명 가져오기 (hive 계정에 접속)
sqoop list-databases --connect jdbc:mysql://dn01 --username hive --password hive-- 2) 테이블명 가져오기 (hive 계정에 접속)
sqoop list-tables --connect jdbc:mysql://dn01/sqoopdemo --username hive --password hive-- 3) 테이블의 데이터를 HDFS에 가져오기(**)
sqoop import --connect jdbc:mysql://dn01/sqoopdemo --table departments --username hive --password hive# hdfs dfs -ls /user/hadoop
분산되어 저장되었다. 한번에 보기 Hadoop -> RDBMS (export)
RDBMS에 형식에 맞는 테이블 구조가 존재해야함
dn02의 mariadb에서
> create table dept like departments;
sqoop export --connect jdbc:mysql://dn01/sqoopdemo --table dept --username hive --password hive --export-dir /user/hadoop/departments
성공적으로 들어옴 dept테이블 hadoop으로
특정 값만 import하기
> insert into dept values (7,"IT")
import
결과
다음글이전글이전 글이 없습니다.댓글