Sqoop相关内容

一、 概念

Sqoop是一种数据迁移工具,可以实现将数据在大数据环境中与RDBMS关系型数据库之间实现数据迁移,之所以可以实现数据迁移是因为底层转换成MR程序实现

二、 安装和使用

1、 安装

1、 解压安装
2、 配置环境变量
3、 修改配置文件
	sqoop-env.sh   sqoop-site.xml
4、 添加mysql驱动jar包以及与hive进行关联的jar包

2、 使用方式

查看   sqoop help
测试sqoop连接MySQL
	sqoop list-datebases --connect jdbc:mysql//node1:3306?serverTimezone=UTC --username root --password root

三、 导入和导出数据

1、 导入数据

  • 将mysql表数据导入到hdfs分布式文件存储系统

    • 将一张MySQL数据表中的数据导入到hdfs
sqoop import
	--connect url
	--username root
	--password pass
	--table table_name
	--target-dir hdfs路径
	--delete-target-dir
	--num-mappers num
	--fields-terminated-by "分隔符"
    • 支持通过查询语句的方式将数据导入hdfs
sqoop import 
	--connetc url
	--username root
	--password pass
	--query "查询语句(如果查询语句中有where语句,必须在where语句之后加上and $CONDITIONS)"
	--target-dir hdfs
	--delete-target-dir
	--num-mappers num
	--fields-terminated-by "分隔符"
where条件最后必须加  and  $CONDITIONS  如果查询语句使用双引号包含的,其中$CONDITIONS前面需要加一个\转义字符
  • 将MySQL表数据导入到hive数据仓库的数据表中
sqoop import
	--connect url
	--username root
	--password pass
	--table table_name
	--num-mappers num
	--hive-import
	--fields-terminated-by "分隔符"
	--hive-overwrite
	--hive-table 数据库名.数据表名

该语句分为两步执行
	1、 先将MySQL表数据导入到hdfs中的user/root路径下
	2、 使用Hive的load装载命令将数据装载到hive数据表中

hive中的数据表可以不用提前存在,导入数据的时候hive会先检测数据表是否存在,如果不存在自动创建一个和mysql表类似的一张数据表,然后装载数据

2、 导出数据

sqoop import
	--connect url
	--username root
	--password pass
	--table staff
	--num-mappers num
	--export-dir "HDFS需要导出的文件路径"
	--input-fields-terminated-by "分隔符"

注意点:导出时MySQL数据表必须存在
mysql数据表中字段类型要和hive匹配,hive数据表的double类型,集合类型在mysql中一般最好使用字符串类型接收
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值