是一个用来将Hive或Hbase,HDFS和关系型数据库中的数据相互转移的工具
可以将mysql ,oracle,Postgres......各种关系型数据库的数据导入hadoop的hdfs上,也可以将HDFS文件系统上的数据导入关系型数据库中
正常安装完Sqoop后:
(1)Sqoop初次连接mysql:(将mysql-5.1.36驱动包放到sqoop的lib下,mysql-5.1.7有bug)
sqoop list-databases --connect jdbc:mysql://AJBC-1774:3306/ --username root --password 19930121
命令打错导致耗了点时间。
同时也出现了点错误,
(2) Caused by: java.sql.SQLException: null, message from server: "Host 'spark' is not allowed to connect to this MySQL server"
是由于mysql不能远程连接导致的
解决方法是:
mysql>use mysql;
mysql>update user set host =’%'where user =’root’;
mysql>flush privileges;
(3)sqoop导入数据到HDFS上面(mysql驱动包与sqoop.jar放到hadoop的lib下面)
sqoop import --connect jdbc:mysql://AJBC-1774:3306/sqoop --username root --password 19930121 --table test1 -m 1 -target-dir /sqoop1
启动一个map处理,还有就是成功以后文件就导入hdfs,同时也生成一个java类在当前的工作目录下
(4)sqoop增量导出HDFS(以id增量导出)
sqoop import --connect jdbc:mysql://AJBC-1774:3306/sqoop --username root --password 19930121 --table test1 -m 1 -target-dir /sqoop1 -check-column id -incremental append
生成的文件在同个文件夹下面