相关文章推荐
鬼畜的柚子  ·  无法打开 源 文件 ...·  9 月前    · 
重感情的热水瓶  ·  WPS ...·  1 年前    · 

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...