sqoop的使用
1.sqoop的安装
1.1 与hadoop和hive的集成,修改/opt/cdh/sqoop-1.4.5-cdh5.3.6/conf/sqoop-env.sh 文件
1.2 验证安装是否成功 bin/sqoop version 查看sqoop版本
2.sqoop 基本操作
2.1 查看sqoop可用的命令 bin/sqoop help
2.2 查看某个命令的具体用法 bin/sqoop help 命令
2.3 查看可用的数据库列表
bin/sqoop list-databases \
--connect jdbc:mysql://life-hadoop.life.com:3306/ \
--username root \
--password root
2.4 将mysql表中的数据导入到hdfs中
bin/sqoop import \
--connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
--username root \
--password root \
--table my_user \
--target-dir /user/yanglin/sqoop/import/my_user \
--num-mappers 1
注:如果不指定导入的目录--target-dir 会默认导入到用户根目录 /user/yanglin/
默认导出格式为textfile,字段中间用,隔开
导出格式可以通过
--as-avrodatafile
--as-parquetfile
--as-sequencefile
--as-textfile 默认
同时可以自定只导出指定的列 --columns id,account
可以通过sql语句进行导入数据的清洗 --query 'select id ,account from my_user' 其中where 语句中必须包含$CONDITIONS
bin/sqoop import \
--connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
--username root \
--password root \
--query 'select id ,account from my_user where $CONDITIONS' \
--target-dir /user/yanglin/sqoop/import/my_user_query \
--num-mappers 1 \
--as-parquetfile
可以指定压缩格式 --compress 和 --compression-codec
bin/sqoop import \
--connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
--username root \
--password root \
--query 'select id ,account from my_user where $CONDITIONS' \
--target-dir /user/yanglin/sqoop/import/my_user_compress \
--num-mappers 1 \
--as-parquetfile \
--compress \
--compression-codec org.apache.hadoop.io.compress.SnappyCodec
可以指定导入数据的字段间的分割符,默认为,--fields-terminated-by '\t'
bin/sqoop import \
--connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
--username root \
--password root \
--table my_user \
--target-dir /user/yanglin/sqoop/import/my_user_terminated \
--num-mappers 1 \
--fields-terminated-by '\t'
可以通过指定 --delete-target-dir 在运行前,如果输出目录存在,则删除
2.4.2 增量导入
方法一:使用--query 将指定的输入导入
bin/sqoop import \
--connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
--username root \
--password root \
--query 'select * from my_user where $CONDITIONS and id>3 and id<7' \
--target-dir /user/yanglin/sqoop/import/my_user_query_where \
--num-mappers 1 \
--fields-terminated-by '\t'
方法二:使用sqoop自带命令,指定--check-column(依据哪一个列进行增量导入),--incremental(增量的方式为追加),--last-value(最后一条数据的id值)
bin/sqoop import \
--connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
--username root \
--password root \
--table my_user \
--target-dir /user/yanglin/sqoop/import/my_user_table_where \
--num-mappers 1 \
--fields-terminated-by '\t' \
--check-column id \
--incremental append \
--last-value 3 \
--direct
2.4.3 通过指定--direct,我们可以指定通过mysql将数据进行导出,速度更快
2.5 数据导出到rdms
bin/sqoop export \
--connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
--username root \
--password root \
--table my_user \
--export-dir /user/yanglin/sqoop/export/user \
--num-mappers 1 \
--fields-terminated-by '\t' \
--direct
2.6 将rdmb中的数据导入到hive表中
bin/sqoop import \
--connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
--table my_user \
--username root \
--password root \
--num-mappers 1 \
--fields-terminated-by '\t' \
--hive-import \
--hive-database chd_hive \
--hive-table user_import
3.使用脚本进行sqoop导入和导出
3.1 编写脚本文件sqoop_import.sql
#使用文件对sqoop进行导入
import
#mysql数据库连接
--connect
jdbc:mysql://life-hadoop.life.com:3306/sqoop
#mysql数据库用户名
--username
root
#mysql数据库密码
--password
root
#mysql数据库要导出的表名
--table
my_user
#导出到hdfs系统中路径
--target-dir
/user/yanglin/sqoop/import/my_user_options
#导出数据中字段的分割符
--fields-terminated-by
'\t'
3.2 运行脚本 --options-file
bin/sqoop --options-file /opt/data/sqoop_import.sql --num-mappers 1
sqoop的使用的更多相关文章
- sqoop:Failed to download file from http://hdp01:8080/resources//oracle-jdbc-driver.jar due to HTTP error: HTTP Error 404: Not Found
环境:ambari2.3,centos7,sqoop1.4.6 问题描述:通过ambari安装了sqoop,又添加了oracle驱动配置,如下: 保存配置后,重启sqoop报错:http://hdp0 ...
- 安装sqoop
安装sqoop 1.默认已经安装好java+hadoop 2.下载对应hadoop版本的sqoop版本 3.解压安装包 tar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-a ...
- Hadoop学习笔记—18.Sqoop框架学习
一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...
- Oozie分布式任务的工作流——Sqoop篇
Sqoop的使用应该是Oozie里面最常用的了,因为很多BI数据分析都是基于业务数据库来做的,因此需要把mysql或者oracle的数据导入到hdfs中再利用mapreduce或者spark进行ETL ...
- [大数据之Sqoop] —— Sqoop初探
Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中. Sqoop也是基于Mapreduce来做的数据导入. 关于 ...
- [大数据之Sqoop] —— 什么是Sqoop?
介绍 sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具.你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中:也可以把数据从hdfs中导出到关系型数据 ...
- Sqoop切分数据的思想概况
Sqoop通过--split-by指定切分的字段,--m设置mapper的数量.通过这两个参数分解生成m个where子句,进行分段查询.因此sqoop的split可以理解为where子句的切分. 第一 ...
- sqoop数据导出导入命令
1. 将mysql中的数据导入到hive中 sqoop import --connect jdbc:mysql://localhost:3306/sqoop --direct --username r ...
- Apache Sqoop - Overview——Sqoop 概述
Apache Sqoop - Overview Apache Sqoop 概述 使用Hadoop来分析和处理数据需要将数据加载到集群中并且将它和企业生产数据库中的其他数据进行结合处理.从生产系统加载大 ...
- sqoop使用中的小问题
1.数据库连接异常 执行数据导出 sqoop export --connect jdbc:mysql://192.168.208.129:3306/test --username hive --P - ...
随机推荐
- magereverse - Magento数据库表结构
Magento数据库表结构相当复杂,250多张表包含了非常多的表关联关系,让刚刚接触Magento的开发者来说真的非常头疼.往往是看到一个产品的各种属性分散在非常多的表中,找不到任何办法来取出它们的数 ...
- ubuntu启动tomcat出错解决方案
从终端进入tomcat的bin目录,然后执行startup.sh,出现以下异常: Cannot find ./catalina.sh The file is absent or does not ha ...
- 关于Java运算中类型自动提升的问题
1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = ...
- GPS部标监控平台的功能设计(一)-功能列表
在2011年交通部的796标准推出后,随着各地交管部门的硬性要求,大多数的GPS监控系统或者车辆管理系统或者物流管理系统,无论是旧的,还是新开发的,都必须要以796标准为基础蓝本,首先要满足796的要 ...
- C#模拟Http与Https请求框架实例
using System.Text; using System.Net; using System.IO; using System.Text.RegularExpressions; using Sy ...
- win8.1 Framework3.5安装不上的问题
问题症状:安装的WIN8系统无法安装Framework,SQL等都有问题 解决误区:直接安装或者更新后在线安装(结果一样各种错误) 解决方法: 1.先gpedit.msc进入本地组策略管理,目录:计算 ...
- redmine常见问题
1.测试Pop3邮件收件任务:rake redmine:email:receive_pop3 RAILS_ENV="production" host=pop.cecgw.cn po ...
- ArcGis for Android 工作与学习
ArcGis安装 需求 windows7(32/64) Eclipse3.6以上版本 Android Sdk 2.2以上 Jdk 7 安装步骤 Eclipse安装 下载ArcGis插件 在Eclips ...
- 论文阅读(Xiang Bai——【CVPR2015】Symmetry-Based Text Line Detection in Natural Scenes)
Xiang Bai--[CVPR2015]Symmetry-Based Text Line Detection in Natural Scenes 目录 作者和相关链接 方法概括 创新点和贡献 方法细 ...
- Python练习,网络小爬虫(初级)
最近还在看Python版的rcnn代码,附带练习Python编程写一个小的网络爬虫程序. 抓取网页的过程其实和读者平时使用IE浏览器浏览网页的道理是一样的.比如说你在浏览器的地址栏中输入 www ...