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 阅读详情

相关推荐

Disk Drill 使用教程

Disk Drill只需单击几下,即可恢复USB闪存驱动器上已删除的数据,包括丢失的照片,文档和其他文件类型。Disk Drill是真正的多合一应用程序,可在Mac上恢复闪存驱动器。Disk Drill将自动应用最佳的笔式驱动器恢复算法来恢复Mac数据。 USB闪存驱动器是一种传输和存储信息的好方法,但是如果错误地丢失或删除了存储在其中的文件,会发生什么呢?当您需要Mac的闪存驱动器数据恢复软件时,Disk Drill是您的最佳选择。Disk Drill将扫描您的USB闪存驱动器(也称为笔式驱动器)并查找

zjj778899的博客 1万+

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

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

huzechen的博客 5317

Centos7.6操作系统安装+Bond配置(600GB磁盘版本)

1.安装前准备工作 准备centos7.6操作系统镜像 CentOS-7-x86_64-DVD-1810.iso 服务器安装一般都是在BMC界面操作,所以安装前需要在BMC界面挂载好操作系统镜像 重启服务器后自动进入安装界面。 华为大数据集群安装操作系统配置

小时光 6010

大数据学习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

Zephyr、FreeRTOS 和 RT-Thread

你是…更适合用嵌入式新手,刚接触 RTOSFreeRTOS(入门简单)IoT 项目开发,需要 BLE/WiFi/MQTTZephyr(协议全)想快速构建可部署的产品Zephyr(模块统一)只做单个任务或简单状态机控制FreeRTOS(轻量)做平台化、持续集成、自动测试Zephyr(CI 支持强)

is0815的博客 2246

WEBGL Shader零基础教程(四):片元着色器核心逻辑

本文系统介绍了WebGL渲染管线中片元着色器的核心概念与应用。主要内容包括:1)片元着色器在渲染管线中的定位与作用,作为逐像素处理单元接收插值数据并计算最终颜色;2)输入数据类型与使用规则,重点讲解varying变量和uniform变量的应用场景;3)颜色计算的核心逻辑,涵盖基础色、渐变、纹理采样和颜色混合;4)进阶特效实现与性能优化技巧,包括交互效果、内置函数组合和GPU计算优化;5)通过综合案例演示了纹理、波纹与交互效果的整合实现。文章提供了完整的代码示例和调试建议,为后续学习光照模型、后期处理等高级渲

分享知识,拥抱变化 1374

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

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

REDANDBLUE_OvO的博客 2109

VSCode+PlatformIO新建工程卡成狗?3步提速大法实测有效(附镜像源配置)

针对VSCode+PlatformIO新建工程时因依赖下载缓慢导致的加载慢问题,本文提供了三步核心提速方案。通过配置Python环境变量、修改PlatformIO插件设置以使用国内镜像源,并优化pip配置文件,实测可大幅缩短工程创建时间,有效解决创建工程卡顿的痛点。

delta的博客 711

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

半车(前后、左右)、整车悬架详细推导建模和simulink仿真分析

用达朗贝尔定理依据悬架数学模型,得到悬架模型微分方程,分别用simulink建立前后半车、左右半车悬架;结合转向2自由度模型与半车侧倾模型,对模型考虑相干性、延时性的C级随机路面下,仿真分析给定角阶跃输入下的侧倾稳定性。

Mr.邹的博客 1万+

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7589

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

探索如何利用CST和ADS进行DDR的SIPI联合仿真

本文系统介绍了CST和ADS两款工具进行DDR信号完整性/电源完整性(SI/PI)联合仿真的方法。CST采用工作室协同方式,通过PCB布局导入、材料设置、模型分配等步骤,重点分析了电源阻抗优化和信号波形质量。ADS则利用SIPro、PIPro等专用工具,突出系统级验证和自动化优化功能。两者各有优势:CST擅长3D结构精确建模,ADS更适于快速系统验证。文章建议可根据项目需求混合使用两种工具,并提供了模型简化、频带选择等实用技巧。通过对比分析,为工程师选择仿真工具提供了决策参考。

一只豌豆象的博客 1150

Mysql sql 拼接Sqoop和Phoenix语句

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

wumiqing1的博客 761

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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、付费专栏及课程。

余额充值