美文网首页
个人总结-Sqoop

个人总结-Sqoop

作者: 蠟筆小噺没有烦恼 | 来源:发表于2017-10-09 14:50 被阅读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 ','

    相关文章

      网友评论

          本文标题:个人总结-Sqoop

          本文链接:https://www.haomeiwen.com/subject/lrcpyxtx.html