본문 바로가기

Hadoop

[Hadoop/Sqoop] export shell example

export HADOOP_HOME=/home/hadoop/hadoop
export JAVA_HOME=/usr/java/jdk6-1.6.0
DB_CON="jdbc:mysql://127.0.0.1:9000/hadoop_test?useUnicode=true&characterEncoding=utf8"
DB_USERNAME="scott"
DB_PASSWORD="tiger"
DB_TABLE_NAME="TABLE_NAME"
DB_COLUMNS="COL1, COL2, COL3, COL4"
EXPORT_DIR="/user/hadoop/result_rc/keyword-r-00000"
EXPORT_DIR2="/tmp/temp_org"
##### sqoop Query #####
/home/hadoop/sqoop/bin/sqoop export \
--verbose \
--connect ${DB_CON} \
--username ${DB_USERNAME} \
--password ${DB_PASSWORD} \
--table ${DB_TABLE_NAME} \
--columns "${DB_COLUMNS}" \
--export-dir ${EXPORT_DIR} \
--input-fields-terminated-by "\t" \
--outdir /data/hadoop/sqoop/generated \
--bindir /data/hadoop/sqoop/generated \
-m 10
view raw gistfile1.txt hosted with ❤ by GitHub

1. EXPORT_DIR은 하둡 hdfs:// URI로 접근할때 사용되는 전체 경로
2. --input-fields-terminated-by "\t" key, value간 구분자를 여기서 설정한다. 각 컬럼이 이걸로 구분됨
3. --outdir /data/hadoop/sqoop/generated \
--bindir /data/hadoop/sqoop/generated \

이게.. 설정을 보고 java 코드를 만들고 그걸 compile해서 실행하는 것이었다..
그때 사용되는 dir임.. outdir, bindir


4. jdbc driver는 sqoop_home/lib에 위치..


테스트로.. 컬럼 5개 11만 데이터 insert에 4초가 걸린다.. 테스트DB, 테스트 서버에서..


넣는것도 Map으로 쪼개서 넣는듯..?