sqoop语句

Sqoop详解 Sqoop(SQL-to-Hadoop)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系型数据库中。 阅读详情

导入指定输出路径、指定数据分隔符
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --target-dir ‘/123’ --fields-terminated-by ‘\t’(mysql必须要设置主键才能成功,123不能存在)

指定Map数量 -m
sqoop import --connect jdbc:mysql://192.168.1.101:3306/test --username root --password root --table temp --target-dir ‘/sqoop/table/1’ --fields-terminated-by ‘\t’ -m 2
增加where条件
sqoop import --connect jdbc:mysql://192.168.1.137:3306/test --username root --password root --table temp --where ‘age>20’ --target-dir ‘/123456’//将年龄大于20的放入到123465目录下并且每条数据分区

使用query语句
sqoop import --connect jdbc:mysql://192.168.1.137:3306/test --username root --password root --query ‘SELECT * FROM temp where age > 20 AND $CONDITIONS’ --split-by temp.age --target-dir ‘/111’

增量导入
根据字段id
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --target-dir ‘/sqoop/table/2’ --incremental append --check-column id --last-value 0 -m 1
–incremental append选项使用append模式,
–check-column id 使用id字段来做增量
–last-value为0,从MySQL表中主键id>0开始同步。
根据时间戳
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --target-dir ‘/sqoop/table/1’ --incremental lastmodified --check-column last_update --last-value ‘2017-03-20 11:00:00’

导出(不会)
sqoop export --connect jdbc:mysql://192.168.1.137:3306/test --username root --password root --export-dir ‘/sqoop/table/1’ --table temp -m 1 --fields-terminated-by ‘\t’(从hafs往本地导出,注:ERROR tool.ExportTool: Error during export:
Export job failed!具体问题是数据中有中文,而数据库表编码不支持
解决方案如下:
将表的数据导出,删除表后重新创建表,指定编码DEFAULT CHARSET=utf8
)

sqoop导入导出(hive)
创建hive表
sqoop create-hive-table --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --hive-table temp123 --fields-terminated-by “\t”

指定hive表名、指定数据分隔符(从mysql到hive注:流程是先从mysql的数据到hdfs上 系统会自动创建临时文件,然后将hdfs的文件导入到hive中)
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --hive-import --hive-table temp123 --fields-terminated-by ‘\t’
通过create-hive-table创建表
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --hive-import --create-hive-table --hive-table temp1234 --fields-terminated-by ‘\t’
可以通过 --create-hive-table 创建表,如果表已经存在则会执行失败
如果提示目录已存在,可以在导入脚本后面追加:–delete-target-dir
覆盖hive表的内容
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --hive-import --hive-overwrite --hive-table temp123 --fields-terminated-by ‘\t’//把mysql表中的内容覆盖了hive表中的temp123
增加where条件
sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table user --where ‘age>20’ --hive-import --hive-table user123 --fields-terminated-by ‘\t’

指定编码格式
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --where ‘age>20’ --hive-import --hive-table user123 --fields-terminated-by ‘\t’ --default-character-set=utf-8

使用query语句
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --query ‘select * from user where age>30 and $CONDITIONS’ --hive-import --hive-table user123 --fields-terminated-by ‘\t’ --target-dir ‘/sqoop/user123’ --split-by user.age
使用query语句必须指定split-by和—target-dir

增量导入
1、根据id
sqoop import --connect jdbc:mysql://hadoop01:3306/test --username root --password root --table temp --hive-import --hive-table temp123 --incremental append --check-column id --last-value 1 --fields-terminated-by ‘\t’//从id为1往后开始导入
2、根据时间戳
通过时间戳来增量导入的脚本:
–incremental lastmodified --check-column last_update --last-value ‘2017-03-20 11:00:00’
//从最后的跟新时间 update2017- 03-20 11:00:00开始导入 注:在建立表的时候必须增加该列 last_update

导出(不会)
sqoop export --connect jdbc:mysql://hadoop01:3306/test-username root --password root --export-dir ‘/sqoop/table/2/part-m-00000’ --table temp -m 1 --fields-terminated-by ‘\t’

  1. sqoop job指令
    5.1. 相关命令:
    bin/sqoop job
    bin/sqoop-job
    5.2. 基本用法:
    bin/sqoop job --create
    创建job
    bin/sqoop job --delete
    删除job
    bin/sqoop job --exec
    执行job
    bin/sqoop job --show
    显示job
    bin/sqoop job --list
    列出job

5.3. 创建和执行job
创建job(注意:-- import之间需要空格)
sqoop job --create synuser – import --connect jdbc:mysql://localhost:3306/test --username root -P --table user --target-dir ‘/sqoop/ d2’ -m 1
创建了job,id为“synuser”,它是将MySQL数据库test中的user表同步hdfs中。然后我们根据这个job的id去查询job详细配置情况:
bin/sqoop job --show synuser
我们可以通过job的id来执行job:
bin/sqoop job --exec synuser
5.4. 安全配置
默认情况下,创建的每个job在运行的时候都不会进行安全的认证。如果我们希望限制指定的sqoop job的执行,只有经过认证以后才能执行,这时候可以使用sqoop job的安全选项。Sqoop安装目录下,通过修改配置文件conf/sqoop-site.xml可以对job进行更高级的配置。实际上,我们使用了Sqoop的metastore工具,它能够对Sqoop进行细粒度的配置。
我们要将MySQL数据库中的数据同步到Hive表,每次执行sqoop job都需要输入访问MySQL数据库的连接账号信息,可以设置sqoop.metastore.client.record.password的值为true。如果在conf/sqoop-site.xml中增加如下配置,会将连接账号信息存储到Sqoop的metastore中:

  1. sqoop.metastore.client.record.password
  2. true
  3. If true, allow saved passwords in the metastore.

5.5. 定时任务
在实际开发运维过程,我们常常要定时执行导入脚本,可以使用crontab来制作定时任务:
crontab -e
0 */1 * * * sqoop job --exec synuser > sqoop_synuser.log 2>&1 &

Sqoop1.4.4使用SQL语句形式将MySQL数据库表中数据导入到HDFS中 问题导读: 一、自由查询形式导入          Sqoop还支持将任意的查询结果集导入,不使用--table、--columns和--where,使用SQL语句--query参数执行自由查询导入,但是必须指定--target-dir目录。如果使用where子句, 后面还必须加个$CONDITIONS,使Sqoop进程替代为一个唯一的条件表达式达到条件查询效果。如下: [hadoopUse 阅读详情

相关推荐

记录:rk3568适配开源GPU驱动(panfrost)

摘要:本文介绍了在RK3568芯片上移植Mali-G52 GPU驱动的过程。主要包括内核dts文件修改和内核配置调整两部分。

xuesong10210的博客 2237

Doris建表注意事项,实时数仓的同学记得收藏

为什么发这篇文章?新入场的小伙伴不知道doris的优势在哪里数据划分的原理是什么不适很清晰,也不知道分桶的作用是干啥的帮助新人快速了解doris的数据存储原理。目录基本概念Row &am...

huzechen的博客 5317

在Redroid容器中构建Frida RPC服务:自动化生成淘宝X-Sign签名参数

本文详细介绍了在Redroid容器中构建Frida RPC服务,实现自动化生成淘宝X-Sign等签名参数的完整方案。通过逆向分析定位关键方法,定制Redroid系统使Frida-Server常驻运行,并编写Frida脚本将签名方法暴露为RPC接口,最终封装为可远程调用的微服务,解决了签名生成的可移植性与工程化难题。

ice55的博客 644

大数据学习21:sqoop 语法和常用命令和小案例

1.1.0 sqoop 语法和常用命令 2.1.0 sqoop 典型用法 3.1.0 sqoop 的一个小案例 4.1.0 sqoop 的分区表导入导出======================================= 1.1.0 sqoop 语法和常用命令 hive导入参数   --hive-home 重写$HIVE_HOME   --hive-import

ggwxk1990的博客 1193

程序进入hardfault之后查找原因的方法

如果在MCU运行程序的时候,进入了hardfault,该怎么办?

smart_boy__的博客 761

告别枯燥的Unity编辑器脚本:Odin插件如何让游戏数据配置变得像搭积木一样简单?

本文详细介绍了Odin插件如何简化Unity编辑器脚本开发,使游戏数据配置变得直观高效。通过声明式特性和丰富的可视化工具,Odin让开发者告别繁琐的OnGUI代码,实现所见即所得的开发体验。文章重点展示了Odin的核心优势、魔法特性及实战案例,帮助Unity开发者提升工作效率。

weixin_28717411的博客 345

【Sqoop】解决 “Sqooq从Hive中导出数据到MySQL中出现乱码” 的问题

1、最初的Sqoop语句 【执行结果】数据成功导入但是有乱码2、网上查找原因后的Sqoop语句 【执行结果】数据导入失败并报错 3、不断试错后,注意到关键点是编码问题检查数据库编码和表的编码发现都不是utf-8编码:数据库的编码: 表的编码:方式一:修改数据库和表的编码,再次执行Sqoop语句即可。记得加上。方式二:从根部修改,一次性解决问题。 这里可以很明显的看到,字符集全错了。开始修改: 修改成功后:【注】第二种方法修改过后,之前创建的数据库和表都需要手动修改一下。之后编写Sqoop语句时就不需要额外写

REDANDBLUE_OvO的博客 2109

手把手教你用Simulink+CANoe+Carsim搭建硬件在环仿真环境(避坑指南)

本文是一份详细的硬件在环仿真环境搭建指南,重点讲解如何将Simulink、CANoe和CarSim三大工具进行实战融合。内容涵盖软件版本兼容性、授权避坑、环境配置,并分步演示了从离线联合仿真到实现软实时同步的完整流程,旨在帮助汽车电子工程师高效构建稳定的HIL测试平台。

weixin_29092579的博客 406

sqoop总结及常见语法

目录第一章 Sqoop简介第二章 Sqoop的原理第三章Sqoop安装3.1下载并解压3.2 修改配置文件3.3 拷贝 JDBC 驱动验证Sqoop3.5测试Sqoop是否能够成功链接数据库第四章 Sqoop的简单使用案列4.1导入数据4.1.1RDBMS到HDFS4.1.2 RDBMS 到 Hive4.1.3 RDBMS 到 Hbase4.2 导出数据4.2.1 HIVE/HDFS到RDBMS4.3 脚本打包第五章 Sqoop 一些常用的命令及参数5.1 常用命令列举5.2命令&参数详解5.2.1

weixin_47880716的博客 2314

YOLO系列训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡大坑)

YOLO系列训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡大坑)

weixin_55249340的博客 3万+

069、PCIE属性字段:缓存、顺序与安全

上个月调试一块自研的PCIE采集卡,遇到了一个诡异的问题:主机通过DMA从设备读取图像数据,大部分帧正常,但偶尔会出现局部数据错位,像是缓存没刷干净。用逻辑分析仪抓链路层报文,发现TLP(事务层包)本身完好,但内存中的数据就是不对。排查三天后,终于锁定在设备端TLP的**属性字段(Attribute Field)**配置上——那几位看似不起眼的缓存、顺序控制位,差点让项目延期。今天我们就拆解PCIE事务头中的这个关键区域,看看它如何影响系统性能与数据安全。

z534437748的博客 50

sqoop 简单语句

1.上传sqoop 2.安装和配置(搭好集群,几乎不用配置sqoop) 在添加sqoop到环境变量 将数据库连接驱动拷贝到$SQOOP_HOME/lib里3.使用 第一类:数据库中的数据导入到HDFS上 sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123...

weixin_30666401的博客 180

归结法证明真题分析

本文主要探讨了逻辑证明题的三种核心形式及其解题策略。第一类为A1∧A2∧A3→B的证明,常采用线性、单元、支持策略法等归结法,典型案例包括使用归纳法证明特定逻辑公式,并列举了历年真题。第二类为集合交集证明,典型案例为证明任意集合S和T的交集S∩T是S的子集,需将交集和包含关系用逻辑式表达。第三类为常规归结法证明,真题示例为使用归结法证明特定逻辑蕴含关系。掌握前两类证明方法后,第三类问题自然迎刃而解。

super_mochi1 278

Mysql sql 拼接Sqoop和Phoenix语句

需求描述:        需要从myslq导入数据到大数据平台hbase,但是由于有100多张表,如果一个表一个表导入的话,工作量大。如果写代码的话,需要的时间也比较多。是否可以直接通过sql语句批量生成sqoop语句呢??         此外,除了数据接入过来之外,还需要做的就是查询,通过phoenix查询,需要创建视图,怎么通过mysql sql语句自动生成创建视图的语句呢?   需...

wumiqing1的博客 761

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

sqoop使用语句

  1、列出mysql数据库中的所有数据库 sqoop list-databases --connect jdbc:mysql://localhost:3306/ -username dyh -password 000000 2、连接mysql并列出数据库中的表sqoop list-tables --connect jdbc:mysql://localhost:3306/test --use...

liyonghui123的专栏 342

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hive 建表语句_sqoop的使用之导入到hive和mysql

承接上一篇文档《sqoop的使用之import导入到HDFS》mysql导入数据到hive中该如何做呢?先登录hive在hive中操作,创建数据库:create database frommysql;创建表创建表create table importhive_info(num int,name string)row format delimited fields terminated by "";...

weixin_39847099的博客 112

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Sqoop的安装和一些语句

1.sqoop是一个用于在hadoop和关系型数据库之间传输数据的工具,用于从关系数据库(mysql、oracle)导入数据到HDFS。 2.当大数据存储和hadoop生态系统的MapReduce、hive、HBASE、Pig分析器出现时,它们就需要一种工具来与 关系型数据库服务器进行交互,以导入和导出驻留在其中的大数据。 sqoop在是使用的时候会和哪些系统打交道? HDFS、MapReduc...

大数据 299

hbase查询语句_Sqoop实操|Sqoop导入Parquet文件Hive查询为null问题

作者:余枫1问题重现1.在MySQL中建表,一个bigint字段,二个varchar字段2.在Hive中建Parquet表createtabletest(s1stringcomment'字段1',s2stringcomment'字段2',s3stringcomment'字段3')comment'测试表'storedasparquet;3.使用Sqoop从My...

weixin_39770506的博客 185

ETL工具Sqoop的入门学习(二)之eval语句使用以及import的增量导入。

ETL工具Sqoop的入门学习(二) 目录回顾1,eval语句-查询数据插入数据2,import的增量导入将数据增量从MySQL导入HDFS 回顾 对于sqoop将MySQL某一张表的全量导入hdfs上和hdfs上的数据全量导出到MySQL中的某一张表可查看这里ETL工具Sqoop的入门学习(一) 对数据来源感兴趣的伙伴可以参考这篇博客python 爬取应届生求职网中的求职信息并存入MySQL数据...

Ganxiang 1563

sqoop常用语句

1,列出全部数据库 sqoop list-databases --connect jdbc:sqlserver://10.10.10.2 --username sa --password 1 2,导入表数据 转载于:https://www.cnblogs.com/zbw911/p/3587842.html

weixin_30344131的博客 125

Sqoop介绍、安装、语句——千峰视频

http://sqoop.apache.org/# 将环境配好,然后保存退出,在source 命令一下,使其生效 。然后再讲mysql拉到sqoop的lib下面 http://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html#_example_invocations_9 Sqoop使用query导入和expor...

火麒马 121

sqoop语句简单分析一

  最近在学习sqoop   分享几个小例子   1). 根据用户:CRMDEV (用户名大写) 密码:crmdev 导出10.10.35.65中的Oracle实例crmdev_standby  的表ORDR_MAIN 表的前10条记录  ./sqoop import --connect jdbc:oracle:thin:@10.10.35.65:1521/crmdev_standby...

此博客经常从事非法的交易。 156

Sqoop执行mysql删除语句

如果使用Sqoop删除mysql中的数据,并且传递动态日期参数,则使用下方的方法: 创建一个sh文件,内容如下: #!/bin/sh ## 环境变量生效 . /etc/profile #【调度删除导入所在月数据量】 deletym=$(date -d last-day +%Y%m) sqoop eval --connect jdbc:mysql://112.112.1...

weixin_30339457的博客 1247

sqoop怎么主动关闭mysql_Sqoop执行mysql删除语句

如果使用Sqoop删除mysql中的数据,并且传递动态日期参数,则使用下方的方法:创建一个sh文件,内容如下:#!/bin/sh## 环境变量生效. /etc/profile#【调度删除导入所在月数据量】deletym=$(date -d last-day +%Y%m)sqoop eval --connect jdbc:mysql://112.112.10.127:3060/yangyang884...

weixin_36036029的博客 202
上一篇: Sqoop Import原理
下一篇: StringUtils用法+StringUtils详细介绍
Alwaysdazz
博客等级 码龄8年 24粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值