Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间
进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的
HDFS中,也可以将HDFS的数据导进到关系型数据库中。
======================================================
sqoop的安装:
1.上传 /usr/sqoop/
2.解压
[root@zhiyou01 usr]# cd sqoop/
[root@zhiyou01 sqoop]# ls
sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
[root@zhiyou01 sqoop]# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
3.把数据库连接驱动放到 $SQOOP_HOME\lib 下
===============================================================
∙设置mysql数据库运行远程访问; (关闭wifi精灵 ,防火墙,杀毒软件 )
默认不允许外部访问,原因:
mysql--user
root用户只允许localhost访问,不允许远程ip访问;
mysql> show databases;
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select hosh,user from user;
mysql> flush privileges #刷新权限
或者:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES
测试:
=========================================================
1.把mysql里面的数据导入到hdfs中
./sqoop import --connect jdbc:mysql://192.168.52.190:3306/bigdata24 --username root --
password root --table dept --target-dir '/sqoop/td' --fields-terminated-by '\t'
target-dir 目录路径
fields-terminated-by 分割符是什么
[root@zhiyou01 bin]# hadoop fs -ls /
Found 2 items
drwxr-xr-x - root supergroup 0 2018-06-05 10:25 /sqoop
drwx------ - root supergroup 0 2018-06-05 10:24 /tmp
[root@zhiyou01 bin]# hadoop fs -ls /sqoop
Found 1 items
drwxr-xr-x - root supergroup 0 2018-06-05 10:26 /sqoop/td
[root@zhiyou01 bin]# hadoop fs -ls /sqoop/td
Found 6 items
-rw-r--r-- 3 root supergroup 0 2018-06-05 10:26 /sqoop/td/_SUCCESS
-rw-r--r-- 3 root supergroup 17 2018-06-05 10:26 /sqoop/td/part-m-00000
-rw-r--r-- 3 root supergroup 25 2018-06-05 10:26 /sqoop/td/part-m-00001
-rw-r--r-- 3 root supergroup 25 2018-06-05 10:26 /sqoop/td/part-m-00002
-rw-r--r-- 3 root supergroup 0 2018-06-05 10:26 /sqoop/td/part-m-00003
-rw-r--r-- 3 root supergroup 39 2018-06-05 10:26 /sqoop/td/part-m-00004
2.把hdfs中的数据导出到mysql中
2.1 首先建数据库建表
2.2 导出
./sqoop export --connect jdbc:mysql://192.168.52.190:3306/bigdata24 --username root
--password root --export-dir '/sqoop/td' --table dept_sqoop -m 1 --fields-terminated-by '\t'
1. 将数据库导到hdfs上面
./sqoop import --connect jdbc:mysql://192.168.52.190:3306/bigdata24 --username root --
password root --table dept --columns 'd_id,d_name,d_duty'
指定输出路径、指定数据分隔符
sqoop import --connect jdbc:mysql:// 192.168.52.190:3306/bigdata24 --username root --
password root --table dept --target-dir '/sqoop/td' --fields-terminated-by
'\t'
指定Map数量 ‐m
sqoop import --connect jdbc:mysql:// 192.168.52.190:3306/bigdata24 --username root --
password root --table dept --target-dir '/sqoop/td1' --fields-terminated-by
'\t' -m 2
增加where条件, 注意:条件必须用引号引起来
sqoop import --connect jdbc:mysql://1 192.168.52.190:3306/bigdata24 --username root -
-password root --table dept --where 'd_id>3' --target-dir '/sqoop/td2'
增加query语句(使用 \ 将语句换行)
./sqoop import --connect jdbc:mysql://192.168.52.190:3306/bigdata24 --username root --password root
--query 'SELECT * FROM dept where d_id > 2 AND $CONDITIONS' --split-by dept.d_id --target-dir
'/sqoop/td3'
注意:如果使用--query这个命令的时候,需要注意的是where后面的参数,AND
$CONDITIONS这个参数必须加上
而且存在单引号与双引号的区别,如果--query后面使用的是双引号,那么需要在
$CONDITIONS前加上\即\$CONDITIONS
如果设置map数量为1个时即‐m 1,不用加上‐‐split‐by ${tablename.column},否则需要加上
2. 第二类:将HDFS上的数据导出到数据库中
(不要忘记指定分隔符)
sqoop export --connect jdbc:mysql://192.168.52.190:3306/bigdata24 --username root --password root --
export-dir '/sqoop/td3' --table dept2 -m 1 --fields-terminated-by ','
./sqoop export --connect jdbc:mysql://192.168.52.190:3306/bigdata24 --username root --password root
--export-dir '/sqoop/td3' --table dept2 -m 1 --fies-terminated-by ','
Sqoop
简介
Sqoop
(
发音
:
skup
)是SQL-to-Hadoop的缩写,是一款开源的工具,主要用来在Hadoop和关系数据之间交换数据,可以改进数据的数据的互操作性。
通过
Sqoop
,可以方便地将数据从MySQL、Oracle、PostgreSQL等关系数据库中导入Hadoop(比如导入到HDFS、Hbase或Hive中),
或者将数据从Hadoop导出到关系数据库,使得传统关系数据...
Sqoop
(
发音
:
skup
)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
sqoop
安装:安装在一台节点上就可以了。1.上传
sqoop
2.安装和
配置
一、离线数据同步
DataX
阿里的Datax是比较优秀的产品,基于python,提供各种数据村塾的
读
写插件,多线程执行,使用起来也很简单,定义好
配置
json文件执行脚本就可以了,非常适合离线数据,增量数据可以使用一些编码的方式实现,但是也仅仅针对insert数据比较有效,update数据就不适合
github地址:https://github.com/alibaba/DataX
Sqoop
Sq...
sqoop
(
发音
:
skup
) 是一种开源工具
Sqoop
是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
文章目录ETL工具
sqoop
sqoop
简介
sqoop
安装
sqoop
常用命令
sqoop
案例
sqoop
简介
Sqoop
(
发音
:
skup
)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop
项目开始于2009年,最早是作为Hadoop的一个第三
Sqoop
是一个在结构化数据和Hadoop之间进行批量数据迁移的工具,结构化数据可以是MySQL、Oracle等RDBMS。
Sqoop
底层用MapReduce程序实现抽取、转换、加载,MapReduce天生的特性保证了并行化和高容错率,而且相比Kettle等传统ETL工具,任务跑在Hadoop集群上,减少了ETL服务器资源的使用情况。在特定场景下,抽取
过程
会有很大的性能提升。如果要用
Sqoop
,必须正确安装并
配置
Hadoop,因依赖于本地的Hadoop环境启动MR程序;
Sqoop
简介
Sqoop
全称SQL to Hadoop,主要用于Hadoop与SQL(这里的SQL指关系型数据库)进行数据的传递。可以将一个关系型数据库中的数据导入到Hadoop的HDFS中,也可以将HDFS中的数据导入到关系型数据库中。
Sqoop
本身就是作为Hadoop的一个第三方模块存在,后来为了方便迭代才作为一个单独的Apache项目存在。
Sqoop
1中1.4.7(不包含1.4.7)之前的版本用于CentOS6版本,1.4.7(包含1.4.7)用于CentOS7版本。
Sqoop
2用于测试,不用于
关于
发音
,困扰了我很久,一番类比之后,决定
读
为“丝库坡”,英语老师看见了会不会疯掉,呵呵,我就是这样一个逗x。
书归正传:
Sqoop
【SQL-To-Hadoop】是将关系型数据库的数据(MySQL or Oracle or Postgre)导入到HDFS及其子系统中(Hive, HBase)的工具
sqoop
有两个版本,
sqoop
1和
sqoop
2,两者特性...
1,
Sqoop
会通过 JDBC 来获取所需要的数据库元数据,例如:导入表的列名,数据类型等。
2,这些数据库的数据类型(varchar、int 等)会被映射成 Java 的数据类型(String、int 等),根据这些信息,
Sqoop
会生成一个与表名同名的类用来完成序列化工作,保存表中的每一行记录。
3,
Sqoop
启动 M...