数仓开发之Flume《一》:Flume的概述及安装

4 篇文章 0 订阅
1 篇文章 0 订阅

目录

1. 🥙Flume概述

1.1 Flume简介

1.2 Flume的架构

1. 🧀agent介绍

2. ​Agent 主要有 3 个部分组成,Source、Channel、Sink。

🥗2.1 Source

🥗2.2 Sink

🥗2.3 Channel

3. 🧀Flume 自带两种 Channel:Memory Channel 和 File Channel。

4. 🧀Event 介绍

2. 🥙Flume的安装配置

2.1 下载地址

2.2 安装部署 


1. 🥙Flume概述

1.1 Flume简介

  • Flume是一种可配置、高可用的数据采集工具,主要用于采集来自各种流媒体的数据(Web服务器的日志数据等)并传输到集中式数据存储区域。
  • Flume 支持在日志系统中定制各种数据发送方,用于收集数据;并且可以对数据进行简单处理,将其写到可定制的各种数据接收方(如文本、HDFS、HBase等)。
  • Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS。

1.2 Flume的架构

单个agent采集数据

多级agent之间串联-级联flume

1. 🧀agent介绍

Flume中最核心的角色是agent,flume采集系统就是由一个个agent连接起来所形成的一个或简单或复杂的数据传输通道。 对于每一个Agent来说,它就是一个独立的守护进程(JVM),它负责从数据源接收数据,并发往下一个目的地。

2. ​Agent 主要有 3 个部分组成,Source、Channel、Sink。

🥗2.1 Source

Source 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种格式的日志数据----》说白了就是就是数据来源

常用的Source类型

描述

Avro source

监听Avro端口并且从外部Avro客户端接收Event需指定被监听的IP和端口号。

Exec Source

可以通过指定的linux操作命令对日志进行读取,使用exec时需指定使用的命令

Spooling Directory Source

读取目录里的文件,当出现新文件时会读取该文件并获取数据(文件在读取过程中不能修改)

NetCat source

监听指定的端口并将接收到的数据的每一行转换为一个事件。

Kafka Source

作为一个消费者,从Kafka的topic读取消息

Http Source

接收HTTP 的GET和POST请求作为Flume的事件

TailDir Source

监控目录里的正则文件,并支持断点续传。

🥗2.2 Sink

下沉组件,用于往下一级agent传递数据或者向最终存储系统传递数据。Sink 组件目的地包括 hdfs、logger、avro、thrift、ipc、file、HBase、solr、自定义。-----》数据最终写出的位置

常用的Sink类型

描述

Logger Sink

将数据写到Flume的log中,通常用于测试或者调试

Avro Sink

将数据发送给其他Avro Source

File Roll Sink

将数据存放在本地文件系统中,根据时间或者大小生成文件

Kafka Sink

将数据写入Kakfa中

HBase Sink

将数据写入Hbase

AsyncHbase Sink

使用异步的方式将数据写入Hbase

Hive Sink

将数据写入Hive

HDFS Sink

将数据写入HDFS

ElasticSearch Sink

将数据写入ElasticSearch

MorphilineSoir Sink

将数据写入Soir

🥗2.3 Channel

Channel 是位于 Source 和 Sink 之间的缓冲区。因此,Channel 允许 Source 和 Sink 运作在不同的速率上。Channel 是线程安全的,可以同时处理几个 Source 的写入操作和几个Sink 的读取操作。------》中间的缓冲区

常用的Channel类型

描述

Memory Channel(常用)

储存Event在内存队列中,如果宕机可能会造成数据的丢失,具有很高的吞吐量

JDBC Channel

将Event储存在持久化的数据库中

Kafka Channel(常用)

将Event储存在Kafka中,Kakfa提供了高可用和复制性,当Kafka或agent崩溃时也不会丢失

File Channel(常用)

将Event持久化在本地文件系统里(性能较差),但可以保证数据不会丢失

Spillable Memory Channel

Event数据存储在内存和磁盘上,当内存队列满了将会持久化到磁盘文件(新加的,不稳定)

3. 🧀Flume 自带两种 Channel:Memory Channel 和 File Channel

  • Memory Channel 是内存中的队列。Memory Channel 在不需要关心数据丢失的情景下适用。如果需要关心数据丢失,那么 Memory Channel 就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。
  • File Channel 将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。

4. 🧀Event 介绍

数据agent内部数据流转的封装形式;

  • Source组件在获取到原始数据后,需要封装成Event放入channel; Sink组件从channel中取出Event后,需要根据目标存储的需求,转成其他形式的数据输出。
  • Event封装对象主要有两部分组成: Headers和 Body
  • header是一个集合 Map[String,String],用于携带一些KV形式的元数据(标志、描述等) body: 就是一个字节数组byte[];装载具体的数据内容
Event: {  
headers:HashMap<String,String>  ==> {host=doitedu01,timestamp=17623745832457} 元数据
body:byte[] ==> 61 20 61 20 61 61 61 20 61 20 0D    字节数据 
}  

2. 🥙Flume的安装配置

Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境

2.1 下载地址

(1)Flume 官网地址:Welcome to Apache Flume — Apache Flume
(2)文档查看地址:Flume 1.11.0 User Guide — Apache Flume
(3)下载地址:Index of /dist/flume

2.2 安装部署 

上传安装包到数据源所在节点上,然后解压 

tar -zxvf apache-flume-1.11.0-bin.tar.gz

  • 12
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
上层应用业务对实时数据的需求,主要包含两部分内容:1、 整体数据的实时分析。2、 AB实验效果的实时监控。这几部分数据需求,都需要进行的下钻分析支持,我们希望能够建立统一的实时OLAP数据仓库,并提供一套安全、可靠的、灵活的实时数据服务。目前每日新增的曝光日志达到几亿条记录,再细拆到AB实验更细维度时,数据量则多达上百亿记录,多维数据组合下的聚合查询要求秒级响应时间,这样的数据量也给团队带来了不小的挑战。OLAP层的技术选型,需要满足以下几点:1:数据延迟在分钟级,查询响应时间在秒级2:标准SQL交互引擎,降低使用成本3:支持join操作,方便维度增加属性信息4:流量数据可以近似去重,但订单行要精准去重5:高吞吐,每分钟数据量在千W级记录,每天数百亿条新增记录6:前端业务较多,查询并发度不能太低通过对比开源的几款实时OLAP引擎,可以发现Doris和ClickHouse能够满足上面的需求,但是ClickHouse的并发度太低是个潜在的风险,而且ClickHouse的数据导入没有事务支持,无法实现exactly once语义,对标准SQL的支持也是有限的。所以针对以上需求Doris完全能解决我们的问题,DorisDB是一个性能非常高的分布式、面向交互式查询的分布式数据库,非常的强大,随着互联网发展,数据量会越来越大,实时查询需求也会要求越来越高,DorisDB人才需求也会越来越大,越早掌握DorisDB,以后就会有更大的机遇。本课程基于真实热门的互联网电商业务场景为案例讲解,具体分析指标包含:AB版本分析,下砖分析,营销分析,订单分析,终端分析等,能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。整个课程,会带大家实践一个完整系统,大家可以根据自己的公司业务修改,既可以用到项目中去,价值是非常高的。本课程包含的技术:开发工具为:IDEA、WebStormFlink1.9.0DorisDBHadoop2.7.5Hbase2.2.6Kafka2.1.0Hive2.2.0HDFS、MapReduceFlume、ZookeeperBinlog、Canal、MySQLSpringBoot2.0.8.RELEASESpringCloud Finchley.SR2Vue.js、Nodejs、Highcharts、ElementUILinux Shell编程等课程亮点:1.与企业接轨、真实工业界产品2.DorisDB高性能分布式数据库3.大数据热门技术Flink4.支持ABtest版本实时监控分析5.支持下砖分析6.数据分析涵盖全端(PC、移动、小程序)应用7.主流微服务后端系统8.天级别与小时级别多时间方位分析9.数据库实时同步解决方案10.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS+ElementUI11.集成SpringCloud实现统一整合方案12.互联网大数据企业热门技术栈13.支持海量数据的实时分析14.支持全端实时数据分析15.全程代码实操,提供全部代码和资料16.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 
在这个科技高速发展的时代,经历了PC时代几乎人手一台电脑,随之衍生出站长这个概念;移动互联网时代几乎人手一部智能手机,智能手机一般都会安装很多应用,目前应用呈爆发式的增长;随着产业的不断深入发展,小程序的发展也日益壮大,应用涵盖各个领域;如今一个公司就可能有多个软件应用,对于软件开发商来说,急需一套分析系统帮助软件运营,如果单独开发一个分析系统去针对一个软件进行分析的话,成本会非常的大,这个成本包含开发成本以及以后的维护成本。为了解决了上述的问题,我们开发出了一套云产品:亿级动态数据统计分析系统,本系统可以支持所有的终端  (Web端、移动端、小程序端等 )数据统计,只要简单的使用sdk就可以接入我们的系统,软件开发商可以很轻松的对软件使用的情况进行监控,及时辅助公司对该软件的运营。该产品历经2年的实践,商业价值极高。本套案例是完全基于真实的产品进行开发和讲解的,同时对架构进行全面的升级,采用了全新的 Flink 架构+Node.js+Vue.js等,完全符合目前企业级的使用标准。对于本套课程在企业级应用的问题,可以提供全面的指导。Flink作为第四代大数据计算引擎,越来越多的企业在往Flink转换。Flink在功能性、容错性、性能方面都远远超过其他计算框架,兼顾高吞吐和低延时。Flink能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。也就是说同时支持流处理和批处理。Flink将流处理和批处理统一起来,也就是说作为流处理看待时输入数据流是无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。Flink技术特点1. 流处理特性支持高吞吐、低延迟、高性能的流处理支持带有事件时间的窗口(Window)操作支持有状态计算的Exactly-once语义支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作支持具有Backpressure功能的持续流模型支持基于轻量级分布式快照(Snapshot)实现的容错一个运行时同时支持Batch on Streaming处理和Streaming处理Flink在JVM内部实现了自己的内存管理支持迭代计算支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存2. API支持对Streaming数据类应用,提供DataStream API对批处理类应用,提供DataSet API(支持Java/Scala)3. Libraries支持支持机器学习(FlinkML)支持图分析(Gelly)支持关系数据处理(Table)支持复杂事件处理(CEP)4. 整合支持支持Flink on YARN支持HDFS支持来自Kafka的输入数据支持Apache HBase支持Hadoop程序支持Tachyon支持ElasticSearch支持RabbitMQ支持Apache Storm支持S3支持XtreemFS课程所涵盖的知识点包括:Flink、 Node.js、 Vue.js、 Kafka、Flume、Spring、SpringMVC、Dubbo、HDFS、Hbase、Highcharts等等  企业一线架构师讲授,代码在老师指导下可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值