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.hqwc.cn/news/458436.html

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

相关文章

林浩然与杨凌芸的Java奇缘:final关键字的三次浪漫邂逅

林浩然与杨凌芸的Java奇缘:final关键字的三次浪漫邂逅 Lin Haoran and Yang Lingyun’s Java Romance: Three Romantic Encounters with the “final” Keyword 在一个名叫“编程乐园”的世界里,住着两位才子佳人——男主角林浩然和女主角杨凌芸。他们不…

C++ 日期计算器

日期计算器 概要 Date类的规划Date类的实现Date 构造函数Date 拷贝构造函数~Date 析构函数GetMonthDay 求某年某月的天数operator 赋值操作符重载operator 加等操作符重载operator 加号操作符重载operator- 减等操作符重载operator- 减法操作符重载 (日期 - 天数&am…

UE4 C++创建摄像机摇臂和相机并且设置Transform

新建MyPawn C类 .h #include "GameFramework/SpringArmComponent.h" //SpringArm组件 #include "Camera/CameraComponent.h" //Camera组件class 工程名称_API AMyPawn : public APawn { //定义组件变量 public:UPROPERTY(VisibleAnywhere, BlueprintRead…

Leetcode 30天高效刷数据结构和算法 Day1 两数之和 —— 无序数组

两数之和 —— 无序数组 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现…

跟着pink老师前端入门教程-day21

5.4 常见flex布局思路 5.5 背景线性渐变 语法: background: linear-gradient( 起始方向 , 颜色 1, 颜色 2, ...); background: -webkit-linear-gradient(left, red , blue); background: -webkit-linear-gradient(left top, red , blue); 背景渐变必须添加浏览…

【C++】基础知识讲解(引用、内联、auto,基于范围for循环)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:http://t.csdnimg.cn/eCa5z 目录 引用 概念 特性 使用场景 作参数 作返回值 传值、传引用效率比较 引用和指针的区别 内联函数 概念…

用python编写爬虫,爬取二手车信息+实验报告

题目 报告要求 工程报告链接放在这里 https://download.csdn.net/download/Samature/88805518使用 1.安装jupyter notebook 2.用jupyter notebook打开工程里的ipynb文件,再run all就行 注意事项 可能遇到的bug 暂无,有的话私信我

Unity类银河恶魔城学习记录4-1,4-2 Attack Logic,Collider‘s collision excepetion源代码 P54 p55

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Entity.cs using System.Collections; using System.Collections.Generic; u…

(十五)springboot实战——spring securtity的核心过滤器介绍

前言 本节内容主要介绍spring securtity安全框架的一些核心过滤器及其作用,我们都清楚spring securtity安全框架底层是基于filter过滤器实现的,采用的是责任链的设计模式,它有一条很长的过滤器链。本次spring securtity原理介绍使用的版本是…

MySQL之建表操作

华子目录 表操作创建表数据类型文本类型数值类型日期/时间类型Bit数据类型常见数据类型 MySQL存储引擎创建表的三个操作创建表时指定存储引擎,字符集,校对规则,行格式 查看表显示数据库中所有表显示数据库中表的信息(表结构&#…

航芯ACM32G103开发板评测 06 1.28圆形屏幕 LVGL移植

航芯ACM32G103开发板评测 06 1.28圆形屏幕 LVGL移植 软硬件平台 航芯ACM32G103开发板1.28寸圆形彩色TFT显示屏高清IPS 模块240X240 SPI接口 GC9A01驱动芯片LVGL V8.3.1源码 LVGL LVGL(Light and Versatile Graphics Library)是一个免费的开源图形库&…

类与对象(终章)——友元,内部类,匿名对象

这里写目录标题 1. 友元1.2 友元函数1.3 友元类 2. 内部类3.匿名对象 1. 友元 之前实现日期类我们实现输入输出流重载的时候就已经了解了友元的概念,我们今天正式走进友元,详细地学习友元的各种特点与性质。 关键字:friend 1.2 友元函数 友元函数在重载…