一、环境准备
1. sqoop工具 ------->sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
2. mysql安装包------>mysql-5.7.17-winx64.zip
3.mysql数据库连接工具------>Navicat Premium
4.mysql驱动程序------>mysql-connector-java-5.1.40.tar.gz
二 、环境搭建
1.安装mysql数据库------>见上一篇文章 win10安装mysql
2.安装数据库连接工具------>Navicat Premium
3.建立数据库连接 此处以 连接本机ip地址为例 192.168.19.10
注意:连接中遇到的问题(如果成功连接,此步骤可以跳过)
连接------>建立连接------>输入mysql的用户名,密码等 ------>确定------>连接
连接失败:出现的异常:
Host * is not allowed to connect to this MySQL server
解决办法
在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改为'%'。
步骤:
进入mysql的BIN目录
mysql -u root -p
mysql>
mysql>use mysql;
mysql>select 'host' from user where user='root';
#查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
mysql>update user set host = '%' where user ='root';
如果执行update语句时出现ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 错误,需要
select host from user where user = 'root';
查看一下host是否已经有了%这个值,如果有了直接执行下面的flush privileges;即可)
mysql>flush privileges;
mysql>select host,user from user where user='root';
mysql>quit
4.上传sqoop并解压
tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz ./
三 、sqoop的使用
第一类:数据库中的数据导入到HDFS上
进入到sqoop/bin目录下
(1)指定输出路径、指定数据分隔符
./sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123
--table trade_detail --target-dir '/sqoop/td' --fields-terminated-by '\t'
./sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123
--table trade_detail --target-dir '/sqoop/td1' --fields-terminated-by '\t' -m 2
(3)增加where条件, 注意:条件必须用引号引起来
./sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123
--table trade_detail --where 'id>3' --target-dir '/sqoop/td2'
(4)增加query语句(使用 \ 将语句换行)
./sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123 \
--query 'SELECT * FROM trade_detail where id > 2 AND $CONDITIONS' --split-by trade_detail.id --target-dir '/sqoop/td3'
如果设置map数量为1个时即-m 1,不用加上--split-by ${tablename.column},否则需要加上
第二类:将HDFS上的数据导出到数据库中(不要忘记指定分隔符)
./ sqoop export --connect jdbc:mysql://192.168.8.120:3306/itcast --username root --password 123
--export-dir '/td3' --table td_bak -m 1 --fields-terminated-by ','