Sqoop简介安装及使用

Sqoop简介
sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。
核心的功能有两个:
导入、迁入
导出、迁出
导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统
导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。
sqoop:
工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序
hive
工具,本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序
在这里插入图片描述
将导入或导出命令翻译成 MapReduce 程序来实现 在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制

Sqoop安装
一、安装部署
(1)、下载地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.7/
解压到/opt/cdh5/sqoop
(2)、拷贝MySQL的jdbc驱动包mysql-connector-Java-5.1.31-bin.jar到sqoop/lib目录下。
(3)、配置环境变量
#sqoop

export SQOOP_HOME=/opt/cdh5/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

(4)、复制sqoop/conf/sqoop-env-template.sh为sqoop-env.sh
添加相关的配置

#Setpath to where bin/Hadoop is available
exportHADOOP_COMMON_HOME=/opt/cdh5/hadoop
#Setpath to where hadoop-*-core.jar isavailable
exportHADOOP_MAPRED_HOME=/opt/cdh5/hadoop
#setthe path to where bin/Hbase isavailable
exportHBASE_HOME=/opt/cdh5/hbase 
#Setthe path to where bin/Hive is available
exportHIVE_HOME= /opt/cdh5/hive
#Setthe path for where zookeper config diris
exportZOOCFGDIR= /opt/cdh5/zookeeper

(5)、测试Sqoop
  sqoop version
测试之前先测试mysql能不能远程连接

Sqoop语法

导入hdfs

Sqoop import
--connect jdbc:mysql://192.168.104.200:3306/database (连接数据库的IP地址 、指定数据库)
--username root	(mysql用户名)
--password root	(mysql密码)
--table user		(表名)
--columns “id,name”(指定需要查找的列)
--where “id >3”	(条件)
--fields-terminated-by “\t”	(列间隔) 
--split-by id			(以哪个字段分割)
--query ‘select id,name from user where $CONDITIONS and id >3’	(也可直接写查询语句,写条件语句时必须写$CONDITIONS ,查询语句外必须用单引号,否则得在$之前加转义字符 \)
--delete-target-dir		(删除掉存在的路径)
--target-dir /hdfs		(写入hdfs的路径)
-m 1					(开启几个maptask任务)

增量导入

Sqoop import
--connect jdbc:mysql://192.168.104.200:3306/database (连接数据库的IP地址 、指定数据库)
--username root	(mysql用户名)
--password root	(mysql密码)
--table user
--incremental append	(追加)
--check-column order_date	(根据哪一列)
--last-value ‘2018-11-12’	(大于这个日期的追加)
--target-dir /hdfs 
--m 1

导入hive
先将hive-common-2.3.2.jar 导入sqoop的lib下

Sqoop import
--connect jdbc:mysql://192.168.104.200:3306/database (连接数据库的IP地址 、指定数据库)
--username root	(mysql用户名)
--password root	(mysql密码)
--table user
--hive-import 	(指定导入hive)
--fields-terminated-by “\t”
--lines-terminated-by “\n”
--hive-overwrite
--create-hive-table
--delete-target-dir
--hive-database  (指定导入hive的哪个数据库)
--hive-table 	(默认和mysql的表名一样)
--target-dir /hdfs
--check-column uid
--last-value 2
-m 1

导出export

Sqoop export
--connect ‘jdbc:mysql://192.168.104.200:3306/database?useUnicode=true&characterEncoding=utf-8’ (连接数据库的IP地址 、指定数据库、指定编码格式)
--username root	(mysql用户名)
--password root	(mysql密码)
--export-dir /hive/warehouse/userinfo/part-m-00000 (指定导出的hdfs路径)
--table userinfo
-input-fields-terminated-by “,”(指定导出的字段间隔,必须是逗号)

因为sqoop1不支持导入hbse,可以先导入hdfs,然后执行批量导入的命令导入hbase

 hbase   org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns="HBASE_ROW_KEY,info:name,order:no,order:date" customer /input/hbase/hbase_import_data.csv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值