您的位置:首页 > 运维架构

Sqoop的那些事

2016-06-20 12:17 197 查看
Sqoop的安装

该项目位置:http://sqoop.apache.org/

下载之后直接解压就好了,安装超级简单。

配置:

进入conf目录,cp sqoop-env-template.sh sqoop-env.sh

HADOOP_COMMON_HOME=**

HADOOP_MAPRED_HOME=**

这个配置我就不多说了,大家都懂。

然后进入bin输入sqoop-help

检查是否成功安装了

到数据之前还要将mysql的连接jar包拷贝到sqoop/lib不要忘了

Sqoop连接器

sqoop拥有一个可扩展的框架,使得他能够从(向)任何支持批量数据传输的外部存储系统导入(导出)数据。sqoop可以连接到大多数的关系型数据库,比如mysql、Oracle、sql server和DB2等。同时还有一个jdbc连接器,用于连接支持jdbc协议的数据库。

Sqoop数据的导入

这个导入说的是将关系型数据库导入的hdfs中

很简单,在Mysql中创建一张表

mysql> create table mysql_test(id int,name carchar(20));

插入一条数据

mysql> insert into mysql_test values (1,’wangwu’);

Query OK, 1 row affected (0.00 sec)

sqoop的import

[root@hadoop-yarn ~]# sqoop import –connect jdbc:mysql://localhost/test –table mysql_test -m 1

/Sqoop在import时,需要制定split-by参数。Sqoop根据不同的split-by参数值来进行切分,然后将切分出来的区域分配到不同map中。每个map中再处理数据库中获取的一行一行的值,写入到HDFS中。同时split-by根据不同的参数类型有不同的切分方法,如比较简单 的int型,Sqoop会取最大和最小split-by字段值,然后根据传入的num-mappers来确定划分几个区域。/

sqoop的export


sqoop可以在hdfs/hive和关系行数据之间进行数据的导入导出,其中主要使用了import和export这两个工具

[root@hadoop-yarn ~]# sqoop export –connect jdbc:mysql://localhost:3306/jtdata –table hive_month -export-dir /apps/hive/warehouse/hive_month/00000_0 –input-fields-terminated-by

/* 注意:如果你的hive里面是分区表的话,你要是想得到所有的数据的话,select* 出新的hive表再倒入mysql中,直接导入的话会出错,因为分区列都是连在一起的,比如你有三个分区啊a,b,c 那样select * 出来的结果是abc只有一个列,所以要用上fields-terminated-by”*/

这是两个导入导出的例子:

将关系型数据的表结构复制到hive中

sqoop create-hive-table –connect jdbc:mysql://192.168.174.91:3306/hs_test –table hs –username yy –password 123 –hive-table test

从关系数据库导入文件到hive中

sqoop import –connect jdbc:mysql://192.168.174.91:3306/hs_test –username yy –password 123 –table hs –hive-import -m 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop