Sqoop 学习总结

Sqoop学习(一) —— 简单理论总结 一、前言 最近项目中需要用到sqoop,刚开始还以为是之前完全没接触过的技术,后面用上之后才发现本科毕设那会帮实验室跑测试用过,顿时感受到遗忘的力量,不过当时也就只是搜了几个需要用到的命令执行完成任务就完事了,也没去具体的学习,最近利用时间快速的过了一下,在此进行简单的总结。 二、参考链接 官网链接:http://sqoop.apache.org/ 用户手册:http://sqoop.ap... 阅读详情

最近在工作中一直使用到了sqoop,理一下最近学习的东西,备忘。内容包括:hive与mysql通过sqoop的导入导出的命令使用及注意点。

把hive表的数据导入mysql:

sqoop export --connect "${jdbcUrl}" --username ${username} --password ${password} --table tb_adslot_hour_report_tmp --columns date,hour,user_id,app_id,adslot_id,os_type,is_asdk,adslot_type,req_dau,dwnl_cnt,actv_cnt --fields-terminated-by \001 --update-key date,hour,user_id,app_id,adslot_id,os_type,is_asdk,adslot_type --update-mode allowinsert --export-dir /user/hive/warehouse/yin.db/adslot_report_tmp --input-null-string '\\N'

 --table    指定要导入到mysql中的表

 --colums 指定hive中要导入到mysql中的列

 --fields-terminated-by 指定hive表的字段分隔符

 --update-key  更新依赖的主列

--export-dir 指定导出目录,会导出目录下的所有文件

--null-string '\\N' 类型为String 类型的字符串,当value 为null时,替换成指定的字符串

--null-non-string 含义是非string类型的字段,当Value是NULL,替换成指定字符

--delete-target-dir  删除表,如果表已经存在

 -m 1  指定开启map任务个数

--update-mode  更新模式  共有两种updateonly(默认)和allowinsert

updateonly: 更新mysql与hive表中对于相同主键时有差异的字段,对于hive表中存在而mysql中不存在的记录,不导入。

allowinsert 插入时的主列如果在表中已经存在,那么就是更新,不然就是插入(包含updateonly)

注意:

1.如果在hive表中存在某个字段为空,在mysql中该字段类型为int,报错。

2.如果hive中某个字段长度超出mysql中定义的字段长度,报错。

3.由于sqoop导入时不具有事物的原子性,同时执行多个sqoop语句时,如果在导入时出现错误,那么就会出现部分数据到导入成功,部分数据导入失败。因此最好先建立一个临时表,通过sqoop先导入临时表中,最后把临时表中的数据同步到正式表中。

把mysql 导入hive表(全量导入)

sqoop import --connect "jdbc:mysql://10.10.15.4:3306/cpd_server_test?useUnicode=true&characterEncoding=utf-8" --username root --password *** --table tmp_vivo_idea_minutely_report_20170331  --fields-terminated-by '\001' -m 1  --columns plat_idea_id,utime,download_cnt,price,cost,imp_cnt,ctime,mtime,hour,minute --target-dir /jutou/original/vivo_idea_minutely_report/day=20170331  --where "date=20170331"  --delete-target-dir  --hive-drop-import-delims --null-string '\\N' --null-non-string '\\N'

--fields-terminated-by  指定hive表的分隔符,该分隔符应该与hive 建表时的分隔符一致,当不一致时会出现把整行当做起始列的数据插入,并且在文件中写sqoop中时,--fields-terminated-by \t 这样写代表分隔符会是\t,--fields-terminated-by '\t' 这样写代表分隔符为‘\t'

--target-dir 指定要导入的hive表的目录所在

--delete-target-dir   删除/r 等特殊字符

注意:

1.导入hive表时,Hive 表中的数据类型最好与mysql一致,如果不一致,hive表中该字段结果可能为null,例:mysql 中为bigint hive中为int 会导致改行结果为null

2.当你创建一个分区表时,在建表时指定路径,那么在mysql的数据导入到hive的某个分区下,要修改hive表把hive分区路径指定到target-dir下,不然你查询出来的hive表始终为空。

ALTER TABLE vivo_idea_minutely_report ADD IF NOT EXISTS PARTITION(day='${day}') LOCATION '/jutou/original/vivo_idea_minutely_report/day=${day}';

mysql 导入hive(增量导入)

1.Append 方式

sqoop import --connect "jdbc:mysql://10.10.15.4:1063/server_test?useUnicode=true&characterEncoding=utf-8" --username root --password test*** --table tb_vivo_idea_daily_report --hive-import --fields-terminated-by '\001' --target-dir  /jutou/original/vivo_idea_daily_report/day=20190111  --incremental append --check-column date --last-value '20190110'

实质:

SELECT MIN(`id`), MAX(`id`) FROM `tb_vivo_idea_daily_report` WHERE ( `date` > 20190110 AND `date` <= 20190111 )

 

append 会导入大于--last-value值的所有记录进入hive。

2.lastModify方式 

此方式要求原有表中有time字段。当指定 -check-column 时,必须指定为 timestamp or date。

参数    说明
–incremental lastmodified    基于时间列的增量导入(将时间列大于等于阈值的所有数据增量导入Hadoop)
–check-column    时间列(int)
–last-value    阈值(int)
–merge-key    合并列(主键,合并键值相同的记录)

sqoop 命令全解

hive导出到mysql中的null值,增量导入,parquet日期格式类型处理

大数据技术基础实验报告-sqoop的安装配置与应用.doc 大数据技术基础实验报告-sqoop的安装配置与应用 立即下载

相关推荐

数仓 - 促销敏感度、评论敏感度

1. 促销敏感度 步骤1. 首先按照最后一次下单时间及有无复购情况将用户分为四大群体: 近一年有购物行为且复购的用户 -- L1 (今年复购用户) 近一年有购物行为但无复购的用户 --L2 (今年一单购用户) 最后一次下单时间在1年之前且有复购的用户 --L3 (今年无购且只有一单用户) 最后一次下单时间在1年之前但无复购的用户 -- L4 (今年无购多单用户) 步骤2. 每一类用户群再根据优惠订单占比、每单优惠金额占比的平均值、优惠金额这三个指标进行k-means聚类,分为: 非常敏感 -

weixin_41332009的博客 1899

大数据HIve+Sqoop实训报告(上)

(一)将MongoDB里面爬取的数据导出来,以csv的形式存放在自己指定的目录下面。 1、因为我只有一个C盘,所以要以管理员的身份进入cmd,否则就没有权限访问,报错。 2、在MongoDB的bin目录下输入 mongoexport.exe -h localhost:27017 --type=csv -f _id,name,salary,company,adds,experience,edu,job_content,job_request -d job_db -c job_collection -o 5

qq_Lisa的博客 1648

手把手教你用NE555+LM324搭建红外倒车雷达(附Multisim仿真文件)

本文详细介绍了如何使用NE555定时器和LM324运算放大器搭建一个红外倒车雷达系统。内容涵盖从核心原理拆解、模块电路设计(包括红外发射、接收放大、检波与电压比较)到实战焊接调试的全过程,并提供了Multisim仿真验证思路,帮助电子爱好者与初学者将模拟电路理论转化为可工作的实用项目。

echo99的专栏 676

大数据HIve+Sqoop实训报告(中)

(一)分析“数据分析”、“大数据开发工程师”、“数据采集”等岗位的平均工资、最高工资、最低工资,并作条形图将结果展示出来; 1、将“数据分析”、“大数据开发工程师”、“数据采集”等岗位表的信息分别提取出来; create table sjfx as select salary from job where name like '%数据采集%'; select * from sjfx; create table bigdata as select salary from job where name l

qq_Lisa的博客 1407

DFT与机器学习协同设计高效光催化剂:从电子结构到性能预测

密度泛函理论(DFT)作为计算材料学的基石,通过求解Kohn-Sham方程,能够在原子尺度精确预测材料的电子结构、能带和光学性质,为理解光催化等能源材料的微观机理提供了关键视角。其核心价值在于替代传统试错法,实现材料性能的理性设计与机理揭示。在工程实践中,面对高通量筛选的需求,机器学习(ML)技术,特别是长短期记忆网络(LSTM)这类擅长处理序列数据的模型,能够学习从材料描述符到复杂性能(如光谱)的映射关系,实现快速性能预测与优化。这种DFT与ML的结合范式,正广泛应用于新能源材料、半导体器件等领域,用于高

weixin_30662937的博客 661

深入构建加密货币价格预测系统:从数据获取到模型优化的完整指南!

🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1276

sqoop使用心得~~~

sqoop是么哥?sqoop就是封装了RDB与hdfs之间互相cp数据的一个工具,没有它,我们当然也可以写一坨脚本,手动执行,但是用它会更方便,so。。。 安装步骤: 1、去 http://archive.cloudera.com/cdh/3/ 下载开发包,现在一般下cdh3u3。 2、下载jdbc rdb 驱动jar包,我测试用的是mysql 驱动。 3、解压完之后把my

亡の剑指 2870

从零构建AI辅助逆向分析环境:JADX-MCP与LLM的实战集成指南

本文详细介绍了如何从零构建AI辅助逆向分析环境,通过集成JADX-MCP与LLM技术,提升Android应用逆向工程效率。文章涵盖环境搭建、插件安装、MCP服务器配置及实战案例分析,帮助开发者快速掌握AI在代码理解、漏洞挖掘和自动化文档生成中的应用。

weixin_27875131的博客 839

数据迁移sqoop学习心得

sqoop是Apache基金会下的数据迁移工具。主要功能是能将数据库中的数据导入到hdfs中,同时也能使hdfs中的数据导出至数据库中。 sqoop的安装只需在hadoop集群中的任意一台机器上即可。因为sqoop自动配置了搜寻NameNode和ResourceManage的功能,运行时能访问到hadoop的core-site.xml,hdfs-site.xml,yarn-site.xml等配置

Jonney's house 1785

Hermes Agent 安装部署完全指南

Hermes Agent安装部署指南提供了两种安装方式:一键脚本安装和手动分步安装。该AI助手支持多平台运行(Linux/macOS/WSL2),核心功能仅需Git作为前置依赖,其他依赖如Python、Node.js等均由安装脚本自动处理。文档详细介绍了系统要求、依赖管理、配置目录结构、环境变量设置以及10个手动安装步骤,并提供了功能模块化选项,用户可根据需求选择安装语音交互、浏览器自动化等扩展功能。安装完成后可通过hermes doctor命令验证环境,并通过交互式向导完成初始化配置。

简简单单Onlinezuozuo 2621

基于FreeRedis实现的.NET Redis客户端缓存缓存键条件优雅过滤

在.NET开发中,使用Redis作为缓存解决方案是很常见的。FreeRedis是一个功能强大的Redis客户端库,它提供了丰富的功能和灵活性,使我们能够轻松地与Redis进行交互。在本文中,我们将探讨如何使用FreeRedis实现缓存键条件的优雅过滤,以提高缓存的效率和准确性。

RzuScala的博客 329

sqoop学习

sqoop学习入门

weixin_43155301的博客 170

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

sqoop的学习总结【待完善】

sqoop的学习总结:  

wyqwilliam的博客 302

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Sqoop-学习笔记

文章目录前言1.Sqoop简介(1.4.6)2.原理3.JDBC驱动4.SqoopDemo4.1 MySQL->HDFS4.2 RDBMS -> HIVE4.3 RDBMS -> HBase4.3 HIVE / HDFS -> RDBMS5.脚本编写总结 前言 本文分享本菜鸟的Sqoop学习笔记。Sqoop能够实现Hadoop(hive)与传统数据库之间的数据传递。主要用于数仓(Hive)与数据库之间的数据传输。 本菜鸟QQ:599903582 笨鸟先飞,熟能生巧 ~ 比心心 ~

LeiKe_的博客 1860

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Sqoop学习(1)-基础介绍

原文来自:扎心了,老铁的《Sqoop学习之路 (一)》

上海一九四三 191

sqoop部分:sqoop的学习(数据的导入导出)

sqoop的学习: 导入:从关系型数据库往HDFS里边写叫导入 导出:从HDFS导出到MapReduce叫导出   连接关系型数据库的四个参数:    sqoop中查看表数据 sqoop的配置:   sqoop安装的时候随便找一台虚拟机安装就可以。 sqoop-env.sh sqoop-site.sh sqoop的版本:1.4.6 修改/etc/pro...

wyqwilliam的博客 1516

Sqoop学习

Sqoop学习

雷神乐乐的博客 1645

Sqoop学习之路

Sqoop学习之路 参考 https://www.cnblogs.com/qingyunzong/p/8807252.html 笔记: 链接:https://pan.baidu.com/s/18K5gh60Vp_JLOLbmhxpSVA 提取码:1eww

倩mys的博客 290

export参数 sqoop_Adventure电商分析案例第四篇《sqoop初步学习》

此系列文章是《数据蛙三个月就业班》adventure电商分析案例的总结,如要了解此项目,参考adventure电商分析项目总结(2020版本)整个案例包括linux、shell、python、hive、pycharm、git、pyechart、sqoop等的使用,为了让就业班同学能够更好的学习,所以对上面大家有疑问的内容进行了总结。本篇是Adventure电商分析案例第一篇-sqoop初步学习阅读...

weixin_39900736的博客 114

Sqoop数据导入 第1关:Sqoop数据导入语法学习

Sqoop数据导入 第1关:Sqoop数据导入语法学习

qq_61604164的博客 1390

hive学习笔记之八:Sqoop

既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。面试大厂,最重要的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。

2301_82242204的博客 865
上一篇: hive 学习使用
下一篇: shell 脚本发送邮件(可带附件)
date-date
博客等级 码龄9年 6粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值