个人总结-Sqoop

2017-10-09  本文已影响162人  蠟筆小噺没有烦恼


一、从rdbms导入到hdfs中

1、一 import(从rdbms导入到hdfs中)

可选参数

默认使用as-textfile文件格式,行与行之间使用逗号分割

--as-parquetfile  使用partition文件格式保存

--columns id,name 导入指定的列

--compress 启用压缩

--compression-codec org.apache.hadoop.io.compress.SnappyCodec 压缩格式

压缩后的文件如果直接加载到hive,可以正常运行(生产环境中用hive来分析mysql的数据

--delete-target-dir 删除已经存在的目标目录

--fields-terminated-by '\t' 设置分割符

--direct mysql优化,快速导入,

2、查看mysql中-的database:

sqoop list-databases \

--connect jdbc:mysql://localhost:3306 \

--username root \

--password ***** \

3、将mysql中表的数据导入到hdfs

sqoop import \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--table users \

--target-dir /user/sqoop/mysql/users \

--num-mappers 1

4、使用sql语句将数据导入hdfs

sqoop import \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--query 'select id,name from users where $CONDITIONS'\

--target-dir /user/sqoop/mysql/users_query \

--num-mappers 1

5、使用sql语句将数据导入hdfs——增量导入

有一个唯一的标识符,类似于插入时间createtime,使用where来进行区分

sqoop import \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--query 'select id,name from users where $CONDITIONS'\

--target-dir /user/sqoop/mysql/users_query \

--num-mappers 1 \

--incremental append \增量倒入

--check-column id \ 标识符列

--last-value 4 \上一次的最后一个 插入位置

二、export导出(文件或者hive到mysql中)

1、将hdfs文件导入mysql

sqoop export \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--table users \

--export-dir /user/sqoop/hdfs/users_mysql.txt \

--num-mappers 1 \

2、从mysql直接导数据到hive中

sqoop import \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--table users \

--delete-target-dir \

--fields-terminated-by ',' \

--num-mappers 1 \

--hive-import \

--hive-database default \

--hive-table users2

原理与之前一样,中间还是会先将数据写道hdfs上边

3、从hive中导出数据到mysql中

sqoop export \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--table users2 \

--export-dir /user/sqoop/hdfs/mysql \

--num-mappers 1 \

--input-fields-terminated-by ','

4、option-file使用:相当于执行脚本

执行语句:sqoop --options-file /文件位置

脚本内容:(空格变换行)

sqoop export   

#这里写注释

--connect jdbc:mysql://localhost:3306/test

--username root

--password *****

--table users2

--export-dir /user/sqoop/hdfs/mysql

--num-mappers 1

--input-fields-terminated-by ','

上一篇下一篇

猜你喜欢

热点阅读