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的可靠性。(只有下一个“地点”明确的接收到了数据,才将上一个“地点”中的数据移除)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于javaEE的ssm仓库管理系统

仓库管理系统的重中之重是进销存分析这一板块,在这一板块中,顾名思义能够查询到近期的进货记录,包括每日的进货单据,单品推移(即某一商品的库存变化),方便我们核对库存差异。同时也需要查询到每日的销售数据&#xff0…

【开源】JAVA+Vue.js实现衣物搭配系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 衣物档案模块2.2 衣物搭配模块2.3 衣物收藏模块 三、系统设计3.1 用例设计3.2 E-R图设计3.3 数据库设计3.3.1 衣物档案表3.3.2 衣物搭配表3.3.3 衣物收藏表 四、系统实现4.1 登录页4.2 衣物档案模块4.3 衣物搭配模块4.4…

[HTTP协议]应用层的HTTP 协议介绍

目录 1.前言 2.使用fiddler抓包来观察HTTP协议格式 3.HTTP协议的基本格式 2.1请求 2,1.1首行 2.1.2请求头 2.1.3空行 2.2响应 2.2.1首行 2.2.2响应头 键值对 ​编辑2.2.3空行 2.2.4载荷(响应正文) 3.认识URL 3.1关于URL encode 1.前言 我们在前面的博客中,简单的…

如何实现视线(目光)的检测与实时跟踪

如何实现视线(目光)的检测与实时跟踪 核心步骤展示说明 找到人脸 检测人脸特征点 根据特征点找到人眼区域 高精度梯度算法检测瞳孔中心 根据眼睛周边特征点计算眼睛中心 瞳孔中心和眼睛中心基于视线模型计算视线方向 视线方向可视化 详细实现与说明: https://stud…

QT Linux下无法使用CTRL+ALT+P快捷键,不生效

文章目录 一、背景二、排查(1)检查创建,发现没问题。(2)查看 shortcutMap 是否注册(3)排查xcb有没有获取到该事件(4)排查是否是系统的问题(5)www.…

YUM | 包安装 | 管理

YUM 功能 软件包安装&#xff1a; 通过yum命令安装软件包。例如&#xff0c;安装一个名为 example-package 的软件包 yum install example-package更新包 检查更新&#xff1a; 检查可用更新&#xff1a; sudo yum check-update <package_name>软件包更新&#xff1a; y…

【MySQL】数据库的基础——数据库的介绍、MySQL的介绍和架构、SQL分类、MySQL的基本使用、MySQL的存储引擎

文章目录 MySQL1. 数据库的介绍1.2 主流数据库 2. MySQL的介绍2.1 MySQL架构2.2 SQL分类2.3 MySQL的基本使用2.4 MySQL存储引擎 MySQL 1. 数据库的介绍 数据库&#xff08;Database&#xff0c;简称DB&#xff09;是按照数据结构来组织、存储和管理数据的仓库。它是长期存储在计…

vue+vite项目,动态导入静态资源的几种方式

博主的桌面工具软件已经正式开发&#xff0c;获取方式&#xff1a; 可以关注我的小程序【中二少年工具箱】获取。&#xff08;若小程序更新有延迟&#xff0c;可先收藏小程序&#xff09; 通过下载链接 百度网盘: 链接&#xff1a;https://pan.baidu.com/s/15zDnSoEzJGSZLjpD…

Swift Combine 发布者publisher的生命周期 从入门到精通四

Combine 系列 Swift Combine 从入门到精通一Swift Combine 发布者订阅者操作者 从入门到精通二Swift Combine 管道 从入门到精通三 1. 发布者和订阅者的生命周期 订阅者和发布者以明确定义的顺序进行通信&#xff0c;因此使得它们具有从开始到结束的生命周期&#xff1a; …

python+flask+django医院预约挂号病历分时段管理系统snsj0

技术栈 后端&#xff1a;python 前端&#xff1a;vue.jselementui 框架&#xff1a;django/flask Python版本&#xff1a;python3.7 数据库&#xff1a;mysql5.7 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm . 第一&#xff0c;研究分析python技术&#xff0c…

NLP_神经概率语言模型(NPLM)

文章目录 NPLM的起源NPLM的实现1.构建实验语料库2.生成NPLM训练数据3.定义NPLM4.实例化NPLM5.训练NPLM6.用NPLM预测新词 NPLM小结 NPLM的起源 在NPLM之前&#xff0c;传统的语言模型主要依赖于最基本的N-Gram技术&#xff0c;通过统计词汇的共现频率来计算词汇组合的概率。然而…

C#使用哈希表对XML文件进行查询

目录 一、使用的方法 1.Hashtable哈希表 2.Hashtable哈希表的Add方法 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;示例 3.XML文件的使用 二、实例 1.源码 2.生成效果 可以通过使用哈希表可以对XML文件进行查询。 一、使用的方法 1.Hashtable哈希表…

Go指针探秘:深入理解内存与安全性

目录 1. 指针的基础1.1 什么是指针&#xff1f;1.2 内存地址与值的地址1.2.1 内存中的数据存储1.2.2 如何理解值的地址 2. Go中的指针操作2.1 指针类型和值2.1.1 基本数据类型的指针2.1.2 复合数据类型的指针 2.2 如何获取一个指针值2.3 指针&#xff08;地址&#xff09;解引用…

14.0 Zookeeper环球锁实现原理

全局锁是控制全局系统之间同步访问共享资源的一种方式。 下面介绍zookeeper如何实现全民锁&#xff0c;讲解他锁和共享锁两类全民锁。 排他锁 排他锁&#xff08;Exclusive Locks&#xff09;&#xff0c;又被称为写锁或独占锁&#xff0c;如果事务T1对数据对象O1加上排他锁…

MongoDB部署策略

内 容 简 介 本文介绍了MongoDB数据库的优点的数据存储模式的安装部署过程。 利用MongoDB在存储海量数据上的优势&#xff0c;部署存储空间大数据。 欢迎批评指正补充 由于编者水平有限&#xff0c;所搜集资料也很有限&#xff0c;制定的规范肯定有考虑不周全、甚至完全错误…

【RT-DETR有效改进】利用SENetV2重构化网络结构 (ILSVRC冠军得主,全网独家首发)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是SENetV2,其是2023.11月的最新机制(所以大家想要发论文的可以在上面下点功夫),其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型,而…

flask+python企业产品订单管理系统938re

在设计中采用“自下而上”的思想&#xff0c;在创新型产品提前购模块实现了个人中心、个体管理、发布企业管理、投资企业管理、项目分类管理、产品项目管理、个体投资管理、企业投资管理、个体订单管理、企业订单管理、系统管理等的功能性进行操作。最终&#xff0c;对基本系统…

Peter算法小课堂—背包问题

我们已经学过好久好久的动态规划了&#xff0c;动态规划_Peter Pan was right的博客-CSDN博客 那么&#xff0c;我用一张图片来概括一下背包问题。 大家有可能比较疑惑&#xff0c;优化决策怎么优化呢&#xff1f;答案是&#xff0c;滚动数组&#xff0c;一个神秘而简单的东西…

Java奠基】对象数组练习

目录 商品对象信息获取 商品对象信息输入 商品对象信息计算 商品对象信息统计 学生数据管理实现 商品对象信息获取 题目要求是这样的&#xff1a; 定义数组存储3个商品对象。 商品的属性&#xff1a;商品的id&#xff0c;名字&#xff0c;价格&#xff0c;库存。 创建三个…

自适应二次元404页面源码

自适应二次元404页面源码&#xff0c;HTMLCSSJS,喜欢二次元的朋友可以下载使用 蓝奏云&#xff1a;https://wfr.lanzout.com/iuPNQ1ns7dxg