sqoop数据的导入导出

Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 转自百度百科

1.从关系数据库导入Hadoop的hive

sqoop import  \
--connect 'jdbc:postgresql://localhost:5432/db_name?useUnicode=true\&characterEncoding=UTF-8' \
--username admin \
--password admin \
--query "select student_id,student_name,class from students where student_id is not null  and \$CONDITIONS" \
--delete-target-dir   \
--target-dir /user/hive/students  \
--fields-terminated-by "\t"   \
--compression-codec lzop \
--hive-drop-import-delims  \ 
--split-by class  \
-m 5 

说明:
--split-by 只能针对整型字段,指定map个数
-m 指定map的数量
--hive-drop-import-delims 去除字段内部的\n、\t、\001等
--compression-codec lzop 将数据按照lzo压缩(需要建表时支持)
--connect中的url参数中的&要转义,否则sqoop会以&结束一行,导致characterEncoding=UTF-8成了一行命令,执行错误。

2.将hive数据导入到关系数据库

sqoop export \
--connect jdbc:mysql://localhost:3306/db_name \
--username admin \
--password admin \
--columns student_id,student_name \
--table students \
--fields-terminated-by "\t"  \
--export-dir '/hive/students'

你可能感兴趣的:(sqoop数据的导入导出)