概述
列出所有库
sqoop list-databases --connect jdbc:mysql://mysql:3306/ --username root --password 111111
****************************************************************************************************
列出连接的数据库的所有表
sqoop list-tables --connect jdbc:mysql://mysql:3306/test --username root --password 111111
****************************************************************************************************
生成表的序列化代码
sqoop codegen --connect jdbc:mysql://mysql:3306/hive --username root --password 111111 --table TBLS --class-name tbls
****************************************************************************************************
从mysql导入数据到hdfs(sqoop默认将数据导成以","分割的文件)
sqoop import --connect jdbc:mysql://mysql:3306/test --username root --password 111111 --table haha --target-dir /sqoop/ -m 1
**** -m map的个数,默认4个
**** sqoop import时会先生成表的序列化java代码文件,然后根据代码将表数据序列化。(运行完可在当前目录看到haha.java)
******* --direct 一些数据库提供快速抽取数据的特定工具,如mysql的mysqldump能以大于JDBC的吞吐率从表中读取数据。sqoop使用--direct可以使用这些外部工具
****************************************************************************************************
导入成sequencefile
sqoop import --connect jdbc:mysql://mysql:3306/test --username root --password 111111 --table haha --target-dir /sqoop1/ -m 1 --as-sequencefile --bindir .
***** --bindir 将生成的java文件编译打成jar包,放在该目录下。(导出的时候可以使用--class-name和--jar-file重用该jar)
****************************************************************************************************
从hdfs导出到mysql
sqoop export --connect jdbc:mysql://mysql:3306/test --username root --password 111111 --table haha --
export-dir /user/root/haha/part-m-00000
**** --input-fields-terminated-by 指定文件的分隔符
****************************************************************************************************
按mysql的表结构创建hive表(需要将hive的jar包导入到flume下)
sqoop create-hive-table --connect jdbc:mysql://mysql:3306/hive --username root --password 111111 -table TBLS -hive-table h_tbls2e --fields-terminated-by ','
**** --fields-terminated-by ',' 指定hive存储时分割符
****************************************************************************************************
直接在将表导入到hive
sqoop import --connect jdbc:mysql://mysql:3306/test -username root --password 111111 --table haha -m 1 --hive-import
**** --fields-terminated-by ',' 指定hive存储时分割符
****************************************************************************************************
操作数据库
sqoop eval --connect jdbc:mysql://mysql:3306/test --username root --password 111111 -e|--query "select * from haha"
**** sqoop eval 对连接的数据库进行sql操作,-e|--query 后跟sql语句
****************************************************************************************************
时间增量导入
sqoop import --connect jdbc:mysql://mysql:3306/test --username root --password 111111 --table s2 -m 1 --target-dir /user/hadoop/abc1 --incremental lastmodified --check-column sj --last-value '2018-06-20 10:04:55'
字段增量导入
sqoop import --connect jdbc:mysql://mysql:3306/test --username root --password 111111 --table xi -m 1 --target-dir /xi --check-column id --incremental append --last-value 3
****** 增量导入
--incremental append:追加,比如对大于last-value指定的值之后的记录进行追加导入。
--incremental lastmodified:最后的修改时间,追加last-value指定的日期之后的记录
对incremental参数,如果是以日期作为追加导入的依据,则使用lastmodified,否则就使用append值。
****************************************************************************************************
追加导入(导入到同一目录下)
sqoop import -append --connect jdbc:mysql://mysql:3306/test --username root --password 111111 --table xi -m 1 --target-dir /xi --check-column id --incremental append --last-value 3
最后
以上就是美丽美女为你收集整理的sqoop的常用导入导出命令的全部内容,希望文章能够帮你解决sqoop的常用导入导出命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复