Sqoop导入数据

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Sqoop导入数据样例

一、Sqoop的简介

 SQL To Hadop,目的是完成关系型数据库导入导出到Hadoop!

 Sqoop的原理是讲命令翻译为MR执行,MR没有Reduce阶段,只有Map阶段!

二、 Sqoop的安装

1.配置环境

 可以在/etc/profile中配置,导出为全局变量

 或

 sqoop-env.sh


 配置 HADOOP_HOME,HIVE_HOME,HBASE_HOME,ZOOKEEPER_HOME

 

2.将连接mysql的驱动,拷贝到sqoop的lib目录

3.测试

bin/sqoop list-databases --connect jdbc:mysql://hadoop102:3306/ --username root --password 123456

三、import

1. 导入到HDFS

// \代表在shell窗口中换行
bin/sqoop import \
// 连接的url
--connect jdbc:mysql://hadoop102:3306/mydb \
// 用户名
--username root \
// 密码
--password 123456 \
// 要导哪个表的数据
--table staff \
// 将数据导入到hdfs的哪个路径
--target-dir /company \
// 如果目标目录存在就删除
--delete-target-dir \
// 导入到hdfs上时,mysql中的字段使用\t作为分隔符
--fields-terminated-by "\t" \
// 设置几个MapTask来运行
--num-mappers 2 \
// 基于ID列,将数据切分为2片,只有在--num-mappers>1时才需要指定,选的列最好不要有null值,否则null
// 是无法被导入的!尽量选取主键列,数字列
--split-by id
// 只导入id和name 列
--columns id,name \
// 只导入复合过滤条件的行
--where 'id >= 10 and id <= 20' \
// 执行查询的SQL,讲查询的数据进行导入,如果使用了--query,不加再用--table,--where,--columns
// 只要使用--query ,必须添加$CONDITONS,这个条件会被Sqoop自动替换为一些表达式
--query "SQL"
-----------------------
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/mydb \
--username root \
--password 123456 \
--table t_emp \
--target-dir /t_emp \
--delete-target-dir \
--fields-terminated-by "\t" \
--num-mappers 2 \
--split-by id \
--columns age,name \
--where 'id >= 5 and id <= 10'
---------------------------
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/mydb \
--username root \
--password 123456 \
--query "select * from t_emp where \$CONDITIONS and id >=2" \
--target-dir /t_emp \
--delete-target-dir \
--fields-terminated-by "\t" \
--num-mappers 2 \
--split-by id

2.导入到Hive

Sqoop导入到hive,先讲数据导入到HDFS,再讲HDFS的数据,load到hive表中!

$ bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 123456 \
--table staff \
--num-mappers 1 \
//导入到hive
--hive-import \
//导入到hive表中字段的分隔符
--fields-terminated-by "\t" \
// 是否以insert overwrite方式覆盖导入数据
--hive-overwrite \
// 要导入的hive表的名称,会自动帮助我们建表。建议还是在hive中手动建表,需要注意和mysql表的数据类型匹配
--hive-table staff_hive
-----------------------------
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/mydb \
--username root \
--password 123456 \
--table t_emp \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table t_emp

3.导入到hbase

 目前使用的sqoop1.4.6对应的是低版本的hbase,目前的1.3.0的hbase版本有点高!

 在执行导入时,sqoop是可以帮我们自动建表,在使用1.3.0hbase时,建表会失败!

 建议手动建表!

bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/mydb \
--username root \
--password 123456 \
--table t_emp \
//如果表不存在,hbase自动建表
--hbase-create-table \
// 导入的表名
--hbase-table "t_emp" \
// mysql的哪一列作为rowkey
--hbase-row-key "id" \
//导入的列族名
--column-family "info" \
--num-mappers 1 \
--split-by id  
---------------------------
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/mydb \
--username root \
--password 123456 \
--table t_emp \
--hbase-create-table \
--hbase-table "t_emp" \
--hbase-row-key "id" \
--column-family "info" \
--num-mappers 1

 

 

 

相关实践学习
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
SQL 分布式计算 Oracle
使用Sqoop从Oracle数据库导入数据
使用Sqoop从Oracle数据库导入数据
使用Sqoop从Oracle数据库导入数据
|
10月前
|
SQL 分布式计算 关系型数据库
大数据 | (五)通过Sqoop实现从MySQL导入数据到HDFS
大数据 | (五)通过Sqoop实现从MySQL导入数据到HDFS
166 0
|
SQL Java 数据库连接
sqoop 从sqlserver2008 导入数据到hadoop
今天终于开始上手导入数据到hadoop了,哈哈,过程蛮崎岖的,和官方文档的还不太一样。 OK,let's go!试验对象是我第一个名为ST_Statistics的一张表,我要把我表里的数据导入到hdfs、hive以及hbase当中,然后试验才算完成。
5403 0
|
1月前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
94 7
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
99 1
|
7月前
|
关系型数据库 MySQL 大数据
大数据Sqoop将mysql直接抽取至Hbase
大数据Sqoop将mysql直接抽取至Hbase
78 0
|
7月前
|
SQL 分布式计算 分布式数据库
大数据Sqoop借助Hive将Mysql数据导入至Hbase
大数据Sqoop借助Hive将Mysql数据导入至Hbase
155 0
|
SQL 分布式计算 运维
【大数据开发运维解决方案】Sqoop增量同步mysql/oracle数据到hive(merge-key/append)测试文档
上一篇文章介绍了sqoop全量同步数据到hive, 本片文章将通过实验详细介绍如何增量同步数据到hive,以及sqoop job与crontab定时结合无密码登录的增量同步实现方法。
【大数据开发运维解决方案】Sqoop增量同步mysql/oracle数据到hive(merge-key/append)测试文档
|
SQL 运维 分布式计算
【大数据开发运维解决方案】Sqoop全量同步mysql/Oracle数据到hive
前面文章写了如何部署一套伪分布式的handoop+hive+hbase+kylin环境,也介绍了如何在这个搭建好的伪分布式环境安装配置sqoop工具以及安装完成功后简单的使用过程中出现的错误及解决办法, 接下来本篇文章详细介绍一下使用sqoop全量同步oracle/mysql数据到hive,这里实验采用oracle数据库为例,
【大数据开发运维解决方案】Sqoop全量同步mysql/Oracle数据到hive

热门文章

最新文章