Hadoop冷热数据转换工具Sqoop

Sqoop是Apache基金下的开源项目,目的是完成关系数据库和Hadoop的转化,实现双向导入。


通常的大型数据系统使用之实现较少,主要原因是因为其在CDH3才开始支持,而且该方式是通过JDBC驱动,将数据库进行读取,并将数据转换至HDFS文件,通常会影响热数据的使用。但是做为日常工作,需要转换时,还是会提供一些方便。


CDH3版本的Sqoop已经默认安装了,其构建在MapReduce之上,不同于直接拷贝,其通过JDBC驱动连接实现hadoop和关系数据库之间的通信。

在进行sqoop前,需要把对应的JDBC驱动放到对应的lib目录。


sqoop命令参数

import ##表示导入数据

--connect jdbc:mysql://ip:3306/sqoop ##指定连接mysql的url

--username test ##连接mysql的用户名

--password test1 ##连接mysql的密码

--table weblogs ##从mysql导出的表名称

--fields-terminated-by '\t' ##指定输出文件中的行的字段分隔符

--m1 ##复制过程使用1个map作业

--target-dir /data/weblogs/import ##指定HDFS上存放的路径


其中,username和password用于验证访问mysql的权限,必须在hadoop的用户名中出现。


默认情况下,导入的数据按照主键进行分割,如果导入的表不包含主键,就用--split-by参数决定导入的数据如何分割。


Sqoop命令将转化为mapreduce作业,使用DBInputFormat,格式化查询结果。因为其进行全表扫描,使用时需要谨慎。

猜你喜欢

转载自blog.csdn.net/weixin_42488570/article/details/80854523
今日推荐