2024-02-07(Sqoop,Flume)

1.Sqoop的增量导入

实际工作中,数据的导入很多时候只需要导入增量的数据,并不需要将表中的数据每次都全部导入到hive或者hdfs中,因为这样会造成数据重复问题。

增量导入就是仅导入新添加到表中的行的技术。

sqoop支持两种模式的增量导入:

append模式:根据数值类型字段进行追加导入,大于指定的last-value值

Lastmodified模式:根据时间戳类型的字段进行追加,>=指定的last-value

注意,在Lastmodified模式下,还分为两种形式:append(附加),merge-key(合并)两种模式来添加。

merge-key做了两件事:如果数据有变化,会将变化的数据同步过来;如果有新增的数据,也会把新增的数据同步过来。还避免了append模式数据同步的问题,它的功能更加强大。

2.Sqoop导出

将数据从HDFS生态体系导出到RDBMS数据库前,目标必须存在于目标数据库中。

导出有三种模式:

a.默认模式:Sqoop将文件中的数据使用insert语句插入到表中。

b.更新模式:Sqoop将生成updata替换数据库中现有记录的语句。

c.调用模式:Sqoop将为每条记录创建一个存储过程调用。

数据导出注意事项:导出的目标表需要自己手动提前创建,也就是sqoop并不会帮我们创建复制表的结构。

3.Sqoop中可以创建Job作业,执行Job,其目的不外乎还是用来导入导出数据。

4.Sqoop免密执行Job作业。

-------------------------------------------------------------Flume------------------------------------------------------------

5.Flume概述

Flume是一个分布式、高可用、高可靠的海量日志采集、聚合和传输的系统,支持在日志系统中定制各类数据发送方,用于收集数据,同时提供了对数据进行简单处理并写到各种数据接收方的能力。

Flume的设计原理是基于数据流的,能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。

Flume能够做到近似实时的推送,并且可以满足数据量是持续并且数量级很大的情况。比如它可以收集社交网站的日志,并将这些数量庞大的日志数据从网站服务器上汇集起来,存储到HDFS或者HBase分布式数据库中。

(注意:数据流中的流字,可以理解为不停的处理,就跟水流一样,不间断)

6.Flume的应用场景:

比如一个电商网站,想从网站的访问者中访问一些特定的节点区域来分析消费者的购物意图和行为。为了实现这一点,需要收集消费者访问的页面以及点击的产品等日志信息,然后移交到大数据Hadoop平台上去分析,可以利用Flume做到这一点。现在流行的内容推送,比如广告定点投递以及新闻私人定制也是基于这个道理。

7.Flume架构

几个概念:

Event:Event/事件是Flume内部数据传输的最基本单元,将传输的数据进行封装。事件本身是由一个装有数据的字节数组和可选的headers头部信息构成的,如下图所示。Flume以事件的形式将数据从源头传输到最终的目的地。

Agent: Flume Agent是一个JVM进程,通过三个组件(Source,Channel,Sink)将事件流从一个外部数据源收集并发送给下一个目的地。

Source:从数据发生器接收数据,并将数据以Flume的Event格式传递给一个或者多个通道/channel。

Channel:通道是一种短暂的存储容器,位于Source和Sink之间,起到一个桥梁的作用。Channel把从 Source处拿到的Event格式的数据缓存起来,当Sink成功的将Event发送到下一跳的Channel或者最终的目的地之后,Events便从Channel中移除。

Channel是一个完整的事务,这一点保证了数据在收发的时候的一致性。

可以把Channel看作一个FIFO/先进先出队列,当数据的获取速率超过流出速率时,将Event保存到队列中,再从队中一个一个的出来。

Channel的形式也有很多种:Momery channel,File channel,Kafka channel等。

Sink获取channel暂时保存的数据并进行处理。sinkc从channel中移除事件,并将其发送到下一个agent(简称下一跳)或者事件的最终目的地,比如HDFS中。

8.Flume整体过程简要描述:

1)外部数据源(Web Server)将Flume可识别的Event发送到Source。

2)将Source收到Event事件后存储到一个或者多个Channel通道中。

3)Channel保留Event直到Sink将其处理完毕。

4)Sink从Channel中取出数据,并将其传输至外部存储(如HDFS)

9.Flume的可靠性:

事件在每个agent中的channel中短暂的存储,然后事件被发送到下一个agent或者最终的目的地。事件只有存储在下一个channel或者最终存储后才从当前的channel中删除。

Flume使用了事务的办法来保证Events的可靠性。(只有下一个“地点”明确的接收到了数据,才将上一个“地点”中的数据移除)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/376634.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vulnhub靶机:hacksudoLPE

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:hacksudoLPE(10.0.2.47) 目标:获取靶机root权限和flag,该靶机是一个练习提权的靶场,主要以提…

Java 语法糖

Java 语法糖 switch 支持 String 与枚举自动装箱与拆箱泛型可变参数 ...枚举内部类断言for-each 语法糖指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用 带有语法糖的代码一般不能直接翻译为汇编语言,J…

数据结构·复杂度讲解

1. 什么是数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 数据结构是用来在内存中管理数据的,类似的,我们熟悉的文件或数据库是在硬盘中管理数据的。内存中的数据是带点…

鸿蒙开发系列教程(十五)--gesture 手势事件

gesture 手势事件 手势操作是指在移动设备上使用手指或手势进行与应用程序交互的方式。手势操作可以包括点击、滑动、双击、捏合等动作,用于实现不同的功能和操作。 gesture 常规手势 参考代码: Entry Component struct Test03 {build() {Column() {…

C++ map和set

1. 关联式容器 序列式容器:因为其底层为线性序列的数据结构,里面存储的是元素本身,比如:vector、list、deque 关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结构的键值对&#xff0…

【golang】24、go get 和 go mod:indrect 与 go mod tidy

文章目录 go get 会执行如下操作: 操作 go.mod 文件(add、update、remove)下载依赖到 $GOPATH/pkg/mod 中若已安装,则更新该包,到最新版本 试验前置准备:首先删除已下载的依赖,rm -rf $GOPATH…

STM32——LCD(1)认识

目录 一、初识LCD 1. LCD介绍 2. 像素 3. LED和OLED显示器 4. 显示器的基本参数 (1)像素 (2)分辨率 (3)色彩深度 (4)显示器尺寸 (5)点距 二、液晶…

[word] word大小写快捷键是什么? #知识分享#学习方法#笔记

word大小写快捷键是什么? word转换大小写的快捷方式是按“ShiftF3”。设置方法如下: 1、在电脑桌面找到需要转换大小写的文档,右键单击打开它。 2、打开文档之后,在文档里面选中需要转换的段落。 3、选中了之后在键盘里面找到“…

【已解决】onnx转换为rknn置信度大于1,图像出现乱框问题解决

前言 环境介绍: 1.编译环境 Ubuntu 18.04.5 LTS 2.RKNN版本 py3.8-rknn2-1.4.0 3.单板 迅为itop-3568开发板 一、现象 采用yolov5训练并将pt转换为onnx,再将onnx采用py3.8-rknn2-1.4.0推理转换为rknn出现置信度大于1,并且图像乱框问题…

Python操作Word表格对齐、单元格对齐

通过Table的alignment可以设置表格居左对齐、居中对齐、居右对齐。通过Cell的vertical_alignment可以设置垂直位置。通过单元格里段落的alignment可以设置文本的左右对齐方式。 import docx from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT from…

李宏毅LLM——大模型+大资料的神奇力量

文章目录 大模型的重要性顿悟时刻 大资料的重要性数据预处理不一样的做法:KNN LM 对应视频P12-P14 大模型的重要性 模型参数和数据集越大,文字接龙的错误率越低 顿悟时刻 当模型超过10B-20B时,会突然顿悟 启示:不能只看最终结…

软件定义网络 SDN 简介、OpenFlow

目录 软件定义网络 SDN 简介 1 SDN 与 协议 OpenFlow 1.1 SDN 1.2 OpenFlow 1.2.1 协议 OpenFlow 1.2.2 OpenFlow 数据层面 (1)匹配 动作 (2)流表 1.流表由远程控制器管理 2.流表结构 2 SDN 体系结构 3 SDN 控制器 软…

机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧

文章目录 1.K-近邻算法思想2.K-近邻算法(KNN)概念3.电影类型分析4.KNN算法流程总结5.k近邻算法api初步使用机器学习库scikit-learn1 Scikit-learn工具介绍2.安装3.Scikit-learn包含的内容4.K-近邻算法API5.案例5.1 步骤分析5.2 代码过程 1.K-近邻算法思想 假如你有一天来到北京…

【 buuctf-后门查杀】

采用 D 盾进行扫描查杀 有一个级别为 5 的扫描结果,记事本打开,即为 flag

【保姆级教程|YOLOv8改进】【6】快速涨点,SPD-Conv助力低分辨率与小目标检测

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

Python进阶--爬取下载人生格言(基于格言网的Python3爬虫)

目录 一、此处需要安装第三方库: 二、抓包分析及Python代码 1、打开人生格言网(人生格言-人生格言大全_格言网)进行抓包分析 2、请求模块的代码 3、抓包分析人生格言界面 4、获取各种类型的人生格言链接 5、获取下一页的链接 6、获取人生格言的…

最新话费充值系统源码,附带系统安装教程

搭建教程 亲测环境:PHP7.0MySQL5.6 PHP扩展安装:sg11 数据库配置文件路径:/config/database.php 伪静态设置为thinkphp 后台地址:/admin 账号密码:admin/123456

SpringBoot源码解读与原理分析(八)ApplicationContext

文章目录 3.1.2 ApplicationContext3.1.2.1 ApplicationContext根接口3.1.2.2 ConfigurableApplicationContext3.1.2.3 EnvironmentCapable3.1.2.4 MessageSource3.1.2.5 ApplicationEventPublisher3.1.2.6 ResourcePatternResolver3.1.2.7 AbstractApplicationContext3.1.2.8 …

当我们一起走过 2023|Apache Doris 年度时刻盘点

2024 年的第一个月已经彻底过去,2023 年的回顾总结才姗姗来迟。 在过去一年的大多数时间里,我们一直处于忙碌的状态中,紧锣密鼓的代码研发、高速推进的版本迭代、行程紧密的全国之行,众多社区用户与开发者皆是见证。 越是忙碌&a…

Yearning审核平台本地安装配置并结合内网穿透实现远程访问

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用…