分布式ETL工具Sqoop实践
Mysql数据准备
1、在node02节点登录Mysql。
mysql -uroot -proot
2、新建数据库testdb。
create database testdb;
3、新建数据表ts。
use testdb;
create table ts(id int, name varchar(10), age int, sex char(1));
4、向表中插入数据。
insert into ts values(10001,'张三',18,'m');
insert into ts values(10002,'李四',20,'m');
insert into ts values(10003,'王小姐',18,'w');
Sqoop基本使用
1、查看MySQL中的所有数据库。
sqoop list-databases --connect jdbc:mysql://node02:3306/ --username root --password root
2、在/root目录下新建sqoop_file目录用于存放作业配置文件。
mkdir /root/sqoop
3、在/root/sqoop_file目录编写配置文件list_dbs.conf,减少重复参数配置。
vim list_dbs.conf
# 添加以下内容
list-databases
--connect
jdbc:mysql://node02:3306/
--username
root
--password
root
4、使用配置文件启动sqoop作业。
sqoop --options-file list_dbs.conf
5、查看testdb中所有表,使用非明文方式,手动输入密码。
sqoop list-tables \--connect jdbc:mysql://node02:3306/testdb \--username root \-P
6、在Mysql中执行SQL并将结果展示在控制台。
sqoop eval \--connect jdbc:mysql://node02:3306/testdb \--query "SELECT * FROM ts LIMIT 10" \--username root \-P
7、将testdb.ts表中所有数据全量导入到hdfs的/tmp/sqoop/testdb/ts目录中。
sqoop import \--connect jdbc:mysql://node02:3306/testdb \--username root \--query "select * from ts where \$CONDITIONS" \--target-dir /tmp/sqoop/testdb/ts \--fields-terminated-by "," \--hive-drop-import-delims \--split-by id \-m 1\-P
8、查看最终结果。
hadoop fs -ls /tmp/sqoop/testdb/ts
hadoop fs -cat /tmp/sqoop/testdb/ts/part-m-00000
9、在MySQL中新增一条数据。
insert into ts values(10004,'张飞',28,'m');
9、使用append增量方式将新增数据导入到/tmp/sqoop/testdb/ts/目录中。
sqoop import \--connect jdbc:mysql://node02:3306/testdb \--username root \--password root \--query "select * from ts where \$CONDITIONS" \--target-dir /tmp/sqoop/testdb/ts/ \--split-by id \-m 1 \--incremental append \--check-column id \--last-value 10003
11、查看导入结果。
hadoop fs -ls /tmp/sqoop/testdb/ts
hadoop fs -cat /tmp/sqoop/testdb/ts/part-m-00001
Sqoop Job操作
将sqoop任务编写为sqoop job,能够减少每次作业执行前,进行的参数配置工作。
- 将增量导入任务制作为sqoop job。
sqoop job --create im_ts \-- import \--connect jdbc:mysql://node02:3306/testdb \--username root \--password root \--query "select * from ts where \$CONDITIONS" \--target-dir /tmp/sqoop/testdb/ts/ \--split-by id \-m 1 \--incremental append \--check-column id \--last-value 10004
- 查看所有作业。
sqoop job --list
- 查看指定作业的详细信息。
sqoop job --show im_ts
- 在MySQL中新增数据。
insert into ts values(10005,'赵子龙',27,'m');
- 运行作业,增量导入数据,这里需要手动输入数据库密码,Sqoop job默认不保存。
sqoop job --exec im_ts
- 查看导入结果。
hadoop fs -cat /tmp/sqoop/testdb/ts/part-m-00002
- 再次在MySQL中新增数据。
insert into ts values(10006,'悟空',5000,'m');
- 运行作业,此时不需要手动修改
--last-value,作业会自动根据上次的结果进行更新。
sqoop job --exec im_ts
- 修改$SQOOP_HOME/conf/sqoop-site.xml配置文件,可以使sqoop job自动保存密码。
<property><name>sqoop.metastore.client.record.password</name><value>true</value><description>If true, allow saved passwords in the metastore.</description></property>
相关文章:
分布式ETL工具Sqoop实践
Mysql数据准备 1、在node02节点登录Mysql。 mysql -uroot -proot2、新建数据库testdb。 create database testdb;3、新建数据表ts。 use testdb; create table ts(id int, name varchar(10), age int, sex char(1));4、向表中插入数据。 insert into ts values(10001,张三…...
展会预告 | 图扑邀您共聚 IOTE 国际物联网展·深圳站
参展时间:9 月 20 日- 22 日 图扑展位:9 号馆 9B 35-1 参展地址:深圳国际会展中心(宝安新馆) IOTE 2023 第二十届国际物联网展深圳站,将于 9 月 20 日- 22 日在深圳国际会展中心(宝安…...
如何下载安装 WampServer 并结合 cpolar 内网穿透,轻松实现对本地服务的公网访问
文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境,是一组常用来…...
iOS添加Mapbox地图库
配置凭据 注册并导航到Account页面。你将需要: 公共访问令牌: 从帐户的tokens页面,你可以复制默认的公共令牌或单击"create a token"按钮来创建新的公共令牌。 带有Downloads:Read范围的秘密访问令牌: 从你帐户的t…...
destoon根据目录下的html文件生成地图索引
因为项目需要,destoon根据目录下的html文件生成地图索引,操作方法,代码如下: <?php $new_array array(); function loopDir($dir,&$new_array,$modurl) {$handle opendir($dir);header("Content-Type:text/xml&qu…...
gRPC之gRPC流
1、gRPC流 从其名称可以理解,流就是持续不断的传输。有一些业务场景请求或者响应的数据量比较大,不适合使用普通的 RPC 调用通过一次请求-响应处理,一方面是考虑数据量大对请求响应时间的影响,另一方面业务场景的设计不一 定需…...
Kafka Shell命令交互
Kafka提供了一个命令行工具,用于管理和与Kafka集群交互。这个命令行工具通常称为Kafka Shell,它允许您执行各种操作,如创建主题、发送和消费消息、查看主题列表等。 以下是一些常用的Kafka Shell命令: 创建主题(Topic): kafka-topics.sh --create --topic my-topic --pa…...
什么是回归测试?
什么是回归测试? 回归测试被定义为一种软件测试类型,以确认最近的程序或代码更改未对现有功能产生不利影响。 回归测试只不过是全部或部分选择已执行的测试用例,然后重新执行以确保现有功能正常运行。 进行此测试是为了确保新代码更改不会…...
ZTMap是如何在相关政策引导下让建筑更加智慧化的?
近几年随着智慧楼宇概念的深入,尤其是在“十四五规划”“新基建”“数字经济”等相关战略和政策的引导下,智慧楼宇也迎来了快速发展期,对推动智慧城市系统的建设越来越重要。那么究竟什么是智慧楼宇呢?智慧楼宇其实就是整合楼宇内…...
Python:函数和代码复用
嗨喽,大家好呀~这里是爱看美女的茜茜呐 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可 1、关于递归函…...
three.js——模型对象的使用材质和方法
模型对象的使用材质和方法 前言效果图1、旋转、缩放、平移,居中的使用1.1 旋转rotation(.rotateX()、.rotateY()、.rotateZ())1.2缩放.scale()1.3平移.translate()1.4居中.center() 2、材质属性.wireframe 前言 BufferGeometry通过.scale()、…...
sql explain
目录 1. sql explain每个字段对应的含义1.1. id1.2. select_type1.3. table1.4. partitions1.5. type1.6. possible_keys1.7. key1.8. key_len1.9. ref1.10. rows1.11. Extra 索引实践联合索引最左列原则全值匹配不建议在索引列上做任何操作, 否则索引会失效转而全表扫描尽量使…...
【LeetCode-简单题】剑指 Offer 05. 替换空格
文章目录 题目方法一:常规做法:方法二:双指针做法 题目 方法一:常规做法: class Solution {public String replaceSpace(String s) {int len s.length() ;StringBuffer str new StringBuffer();for(int i 0 ; i &l…...
数字虚拟人制作简明指南
如何在线创建虚拟人? 虚拟人,也称为数字化身、虚拟助理或虚拟代理,是一种可以通过各种在线平台与用户进行逼真交互的人工智能人。 在线创建虚拟人变得越来越流行,因为它为个人和企业带来了许多好处。 推荐:用 NSDT编辑…...
Nginx 文件解析漏洞复现
一、漏洞说明 Nginx文件解析漏洞算是一个比较经典的漏洞,接下来我们就通过如下步骤进行漏洞复现,以及进行漏洞的修复。 版本条件:IIS 7.0/IIS 7.5/ Nginx <8.03 二、搭建环境 cd /vulhub/nginx/nginx_parsing_vulnerability docker-compos…...
Lombok依赖
一.介绍 Project Lombok 是一个 Java 库,它会自动插入编辑器和构建工具,为您的 Java 增添趣味。永远不要再写另一个 getter 或 equals 方法,使用一个注释,您的类有一个功能齐全的构建器,自动化您的日志记录变量等等。…...
XML 和 JSON 学习笔记(基础)
XML Why XML 的出现背景:在实际开发中,不同语言(如Java、JavaScript等)的应用程序之间数据传递的格式不同,导致它们进行数据交换时很困难,XML就应运而生了!(XML 是一种通用的数据交…...
L1-005 考试座位号分数 15
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试…...
无涯教程-JavaScript - CEILING.MATH函数
描述 CEILING.MATH函数将数字四舍五入到最接近的整数或最接近的有效倍数。 Excel CEILING.MATH函数是Excel中的十五个舍入函数之一。 语法 CEILING.MATH (number, [significance], [mode])争论 Argument描述Required/OptionalNumberNumber must be less than 9.99E307 and …...
ChatGPT提示词(prompt)资源汇总
文章目录 awesome-chatgpt-promptsLearn PromptingSnack PromptFlow GPTPrompt VineChatGPT 指令大全AI Toolbox HubAI Short ChatGPT是一种强大的生成式AI模型,而提示词(prompt)则是与ChatGPT一起使用的指导性文本,用于引导模型生…...
基于大语言模型的自动化信息处理系统:从RSS聚合到AI摘要的实践
1. 项目概述:一个能帮你“读”新闻的AI助手 在信息爆炸的时代,每天光是处理订阅的RSS、关注的社交媒体动态、收藏的YouTube视频和没读完的长文,就足以让人精疲力尽。我们总想保持对行业趋势的敏感,却又被海量信息淹没,…...
MCP2MQTT 完全指南:用 AI 自然语言控制硬件设备的开源 MCP 工具
前言 2025年4月,MCP2Everything 团队正式开源MCP2MQTT,这是全球首个将 MCP(模型上下文协议)与 MQTT 物联网协议无缝桥接的开源工具,彻底打通了 AI 大模型与物理硬件之间的"最后一公里"。无需编写任何胶水代码…...
从亚投行高大幕墙钢架设计谈幕墙结构变形设计
从亚投行高大幕墙钢架设计谈幕墙结构变形设计 【摘 要】 幕墙变形设计是幕墙设计时一个非常重要的考虑要素,它是决定幕墙结构设计质量的关键因素。本文以亚洲基础建设投资银行总部大楼项目南北中厅立面高大幕墙钢架设计为例,从宏观、中观和微观三个维度分析与其连接的主…...
ARM GIC中断控制器架构与关键寄存器详解
1. ARM GIC中断控制器架构概述ARM通用中断控制器(GIC)是现代ARM处理器中负责中断管理的核心组件,它实现了复杂的中断分发和处理机制。GIC架构从v2版本发展到现在的v4版本,功能不断增强,支持多核处理、虚拟化扩展和安全隔离等高级特性。GIC主要…...
六、Ext系列文件系统(2)
...
JPlag代码抄袭检测工具:如何高效识别17种编程语言的代码抄袭行为
JPlag代码抄袭检测工具:如何高效识别17种编程语言的代码抄袭行为 【免费下载链接】JPlag State-of-the-Art Source Code Plagiarism & Collusion Detection. Check for plagiarism in a set of programs. 项目地址: https://gitcode.com/gh_mirrors/jp/JPlag …...
OFIRM 视角下的多重宇宙:双拐点确认度增长模型之本宇宙V4.1开篇,我提出一个深刻的哲学问题:如果宇宙全部演化都可以被一个数学公式精确描述,那么人类独立意识应该如何定位?我思考一夜,越想越觉得恐怖
OFIRM 视角下的多重宇宙:双拐点确认度增长模型之本宇宙V4.1开篇,我提出一个深刻的哲学问题:如果宇宙全部演化都可以被一个数学公式精确描述,那么人类独立意识应该如何定位?我思考一夜,越想越觉得恐怖 问&am…...
安达发|自动排单软件:破工程机械困局,助智能制造升级
安达发APS高级生产计划智能排产排程自动排单软件系统推荐_MES 在工程机械制造领域,挖掘机、起重机、混凝土泵车等产品结构复杂,一台设备涉及成千上万个零部件,订单个性化程度高、生产周期长,生产排单一度成为困扰企业发展的核心痛…...
Windows下Python包管理权限踩坑实录:从WinError 5到WinError 32的完整解决流程
Windows下Python包管理权限问题深度解析:从WinError 5到WinError 32的实战指南 作为一名长期在Windows平台进行Python开发的工程师,我深刻理解文件权限问题带来的困扰。特别是当你在紧急项目交付前夜,突然遭遇PermissionError: [WinError 5]或…...
告别‘纸片人’:在Unity URP里给角色注入灵魂——皮肤透光、发丝细节与眼神光的调校指南
告别‘纸片人’:在Unity URP里给角色注入灵魂——皮肤透光、发丝细节与眼神光的调校指南 在独立游戏开发中,角色往往是玩家情感投射的核心载体。一个缺乏生命力的角色模型,即使建模精度再高,也会让玩家产生"纸片人"的疏…...
