sqoop的使用

1.安装就不说了,说了也没意思

2.

sqoop shell命令(create table tang(int id primary key,name varchar(50)  )

  1.列出mysql数据库所有的数据库      

        

                  ./sqoop list-databases --connect jdbc:mysql://192.168.1.110/test --username root --password root

  2.在sqoop上运行sql语句,用于检测sqoop连接mysql的可用性

            ./sqoop eval --connect jdbc:mysql://192.168.1.110/test --username root --password root --query "select * from tang"

  3.sqoop 将mysql里面的数据写入到hdfs 

(不加后面的驱动显示报错)   ./sqoop import --connect jdbc:mysql://192.168.1.110:3306/test --username root --password root --m 1 --table tang --target-dir /user/tangsonghuai 
[root@min1 bin]# hadoop fs -cat /user/tangsonghuai/part-m-00000
18/12/21 18:06:56 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
12,d
[root@min1 bin]# 

  4.将数据从hdfs写入到mysql里面

./sqoop export --connect jdbc:mysql://192.168.1.110:3306/test --username root --password root --table tang  --export-dir /user/huai 
一开始我是用导出文件为3 的生成文件 part-m-00000发现报错,不允许这样的文件形式,我换了一个文件名 成功执行

  5.数据从mysql写入到hbase 

    

./sqoop import --connect jdbc:mysql://min1:3306/test --username root --password root --table tang --hbase-table hbase_tohdfs --column-family info --hbase-create-table --hbase-row-key id --driver com.mysql.jdbc.Driver
我的hbase是完全分布式的,还是会卡在job执行的情况 我是看的(https://blog.csdn.net/maketubu7/article/details/80718056)也不知道对不对,反正 我现状还在卡在job运行上

增量插入hbase
./sqoop import --connect jdbc:mysql://192.168.1.110:3306/test --table tang --hbase-table hbase_tohdfs --column-family info --hbase-create-table -username root -password root --incremental append --check-column id --last-value 0 --driver com.mysql.jdbc.Driver

 6.sqoop将mysql里面的数据导入到hive上面

 ./sqoop import --connect jdbc:mysql://192.168.1.110:3306/test --username root --password root --table t --hive-import --create-hive-table --fields-terminated-by "	" -m 1

上图是直接导入,没有指定在hive上面的数据库,会默认选择default数据库,表名还是mysql中的表名

 ./sqoop import --connect jdbc:mysql://192.168.1.110:3306/test --username root --password root --table t --hive-import --hive-database warn --create-hive-table --fields-terminated-by "	" -m 1

上面是指定了hive的数据库,指定的数据库必须事先在hive上创建

 7.增量

     这里的例子是从mysql 增量到hive  (append模式)

    这是mysql 中的语句,

create table sqoop_test(id int(11),name varchar(255),age int(11))ENGINE=InnoDB DEFAULT CHARSET=latin1

    这是hive里面的语句

create external table sqoop_test(id int,name string,age int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE location '/user/hive/external/sqoop_test';    这里面是基于hdfs,

这是将mysql里面的数据追加到hdfs里面  

./sqoop import --connect jdbc:mysql://192.168.1.110:3306/test --username root --password root --table sqoop_test --target-dir '/user/hive/external/sqoop_test' --incremental append --check-column id --last-value 2 -m 1 --driver com.mysql.jdbc.Driver

     mysql中增加数据,运行这个语句,就可以在hive上查看追加完成后的数据了 

last-value  使用正确  (增加借鉴于https://blog.csdn.net/wypersist/article/details/80918690)

RUSH B
原文地址:https://www.cnblogs.com/tangsonghuai/p/10154272.html