关于sqoop的一些命令

来源:互联网 发布:mac expect ssh 编辑:程序博客网 时间:2024/05/29 14:28

以前用的一些sqoop的常用命令一直容易忘,今天整理了一些实例供大家参考。
1.列出mysql数据库中的所有数据库
./sqoop list-databases –connect jdbc:mysql://192.168.200.58:3306/ –username root –password 123456

其中192.168.200.58是mysql所在的ip地址

2.列出mysql数据库中的指定数据库的所有表
./sqoop list-tables –connect jdbc:mysql://192.168.200.58:3306/data –username root –password 123456

其中data是所在mysql中的一个数据库

3.从mysql中复制表结构,不导数据
./sqoop create-hive-table –connect jdbc:mysql://192.168.200.58:3306/data –username root –password 123456 –table student –hive-table test

student是mysql中的表,test是hive中即将创建的表
其中student是mysql中的表,test是hive中新建的表名称

4.从关系数据库导入文件到hive中
./sqoop import –connect jdbc:mysql://192.168.200.58:3306/data –username root –password 123456 –table student –hive-import –hive-table test -m 2

从student往hive中的test表中传数据,其中-m是指定job要起多少个map

5.将hive中的表数据导入mysql,但是mysql要事先建好表
./sqoop export –connect jdbc:mysql://192.168.200.58:3306/data –username root –password 123456 –table student –export-dir /user/hive/warehouse/student

往mysql中student表传数据

6.从数据库导出表的数据到hdfs上
./sqoop import –connect jdbc:mysql://192.168.200.58:3306/data –username root –password 123456 –table student -m 2 –target-dir /user/test

其中/user/test为hdfs上的文件目录。一般map切分是根据主键来切分数据的,注意表中如果没有主键,-m只能为1.

7.追加数据到hdfs上
./sqoop import –connect jdbc:mysql://192.168.200.58:3306/data –username root –password 123456 –table student -m 1 –target-dir /user/test –check-column stuID –incremental append –last-value 8

这里stuID为student表中的递增的列,incremental指定参数为append追加,last-value为8是取stuID的值大于8的数据

8.mysql 存入hbase
./sqoop import –connect jdbc:mysql://192.168.200.58:3306/data –username root –password 123456 –table student –hbase-table stu –column-family class –hbase-row-key stuID –hbase-create-table

其中stu为hbase中要创建的表,class为stu的列簇,而指定stuID为stu的行键,最后指定创建hbase表,注意sqoop里面配置文件sqoop-env.sh中配置一下hbase路径,还有要先启动hbase服务

原创粉丝点击