一、概述
- sqoop是Apache 提供的工具,用于hdfs和关系型数据库之间数据的导入和导入
- 可以从hdfs导出数据到关系型数据库,也可以从关系型数据库导入数据到hdfs
二、实现步骤:
- 准备sqoop安装包,官网地址:http://sqoop.apache.org
- 配置jdk环境变量和Hadoop的环境变量。因为sqoop在使用是会去找环境变量对应的路径,从而完整工作
- 解压Sqoop的安装包
- 需要将要连接的数据库的驱动包加入sqoop的lib目录下(本例中用的是mysql数据库)
- 利用指令操作sqoop
三、基础指令
说明 | 指令示例 |
---|---|
查看mysql所有数据库 | sh sqoop list-databases --connect jdbc:mysql://192.168.199.13:3306/ -username root -password 123456 |
查看指定数据库下的所有表 | sh sqoop list-tables --connect jdbc:mysql://hadoop03:3306/hive -username root -password 123456 |
关系型数据库 ->hdfs | 实现步骤: 1. 先在mysql数据库的test数据下建立一张tabx表,并插入测试数据 建表:create table tabx (id int,name varchar(20)); 插入:insert into tabx (id,name) values (1,‘aaa’),(2,‘bbb’),(3,‘ccc’),(1,‘ddd’),(2,‘eee’),(3,‘fff’); 2. 进入到sqoop的bin目录下,执行导入语句:sh sqoop import --connect jdbc:mysql://192.168.150.138:3306/test --username root --password root --table tabx --target-dir ‘/sqoop/tabx’ --fields-terminated-by ’ |
hdfs ->关系型数据库 | 执行:sh sqoop export --connect jdbc:mysql://192.168.199.13:3306/test --username root --password root --export-dir ‘/sqoop/tabx/part-m-00000’ --table taby -m 1 --fields-terminated-by '|' 注:sqoop只能导出数据,不能自动建表。所以在导出之前,要现在mysql数据库里建好对应的表 |
sh sqoop import -help | 查看import的帮助指令 |