数据采集
文章平均质量分 73
阿浩_
这个作者很懒,什么都没留下…
展开
-
08_Flume之HDFS Sink 的参数解析及异常处理
设置为0,如果flume程序突然宕机,就会导致 hdfs上的 .tmp后缀的文件无法会更改为完成的文件,造成一种假象,以为该文件正在写入。当程序重启时,就会有两个 .tmp文件。需要注意的是,这些jar包的版本要和你的Hadoop集群的版本保持一致,否则可能会出现不兼容等问题。rollInterval、rollSize、rollCount是基于文件的条件限制滚动生成文件的,基于文件而言的。rollInterval、rollSize、rollCount是基于文件的条件限制滚动生成文件的,基于文件而言的。原创 2023-04-15 20:50:47 · 610 阅读 · 0 评论 -
07_Flume之Channel的selector
复制方式可以将最前端的数据源复制多份,分别传递到多个Channel中,每个Channel接收到的数据都是相同的。前面介绍过,一个souce可以向多个channel同时写数据,所以也就产生了以何种方式向多个channel写的问题(比如自带的。如果没有手动配置,source的默认channel选择器类型是replicating(复制),当然这个选择器只针对source配置了多个channel的时候。就可以通过配置来按照一定的规则进行分发,听起来很像负载均衡),channel选择器也就应运而生。原创 2023-04-15 20:49:58 · 131 阅读 · 0 评论 -
05_Flume之KafkaSource参数解析
Flume是一个开源的分布式日志收集系统,而Kafka是一个高吞吐量的分布式消息系统。KafkaSource是Flume中的Source类型之一,可以实现数据从Kafka到Flume的无缝传输。原创 2023-04-15 20:48:45 · 930 阅读 · 0 评论 -
06_Flume之各种Channel的介绍及参数解析
Channel被设计为Event中转临时缓冲区,存储Source收集并且没有被Sink读取的Event,为平衡Source收集和Sink读取数据的速度,可视为Flume内部的消息队列。Channel线程安全并且具有事务性,支持source写失败重复写和sink读失败重复读等操作。常用的Channel类型有Memory Channel、File Channel、KafkaChannel等。Channel类型说明基于内存的channel,实际就是将event存放于内存中一个固定大小的队列中。原创 2023-04-15 20:47:20 · 887 阅读 · 0 评论 -
04_Flume之HTTPSource参数解析
Flume 1.9.0 版本的 HTTPSource 是一种数据源类型,可以用于接收通过 HTTP 协议传输的数据。这个版本中,HTTPSource 新增了许多参数,并且改进了性能和稳定性。原创 2023-04-15 20:45:25 · 268 阅读 · 1 评论 -
03_Flume之TaildirSource参数解析
TaildirSource是一种常用的数据源类型,可以实时监控指定目录下新增或修改的文件,并将其发送到Flume的Channel中供后续处理或转发。TaildirSource最大的优点在于兼容多种格式和编码的日志文件,非常适合用于实时采集和分析系统日志和应用日志等场景。原创 2023-04-15 19:37:39 · 720 阅读 · 1 评论 -
02_Flume之各种Source的介绍及参数解析
Source用于对接各种数据源,将收集到的事件发送到临时存储Channel中。常用的source类型有:Avro Source、Exec Source、Kafka Source、TaildirSource、Spooling Directory Source等,其他类型source请查阅Flume-NG官方介绍。source类型说明1支持Thrift协议,Thrift Source监听Thrift端口,接收外部Thrift客户端发送过来的Thrift Event数据。原创 2023-04-15 19:36:50 · 924 阅读 · 0 评论 -
01_Flume之介绍入门
Flume是一个高可靠、高可用、分布式的用于不同数据源的流式数据采集、收集、聚合系统。flume最简单的数据流模型如下图所示。Flume是Cloudera提供的一个高可靠、高可用、分布式的用于不同数据源的流式数据采集、收集、聚合系统。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力,一般的采集需求,通过对flume的简单配置即可实现。针对特殊场景也具备良好的自定义扩展能力。原创 2023-04-15 19:28:23 · 230 阅读 · 0 评论 -
17_Flume之面试题
面试官系列:谈谈你对Flume的理解 (qq.com)【大数据面试题】(六)Flume 相关面试题总结_flume多选题_云 祁的博客-CSDN博客关于Flume的优化和高可用_flume xms_potpof的博客-CSDN博客原创 2023-04-16 20:55:53 · 130 阅读 · 0 评论 -
16_Flume之源码分析
随后,这个轮询线程会通过 Guava 的 EventBus 机制通知 Application 类配置发生了更新,从而触发 Application#handleConfigurationEvent 方法,重新加载所有的组件。组件的start方法是在 MonitorRunnable 的run方法中调用的,MonitorRunnable 是一个线程,run方法中会获取当前组件的状态(默认STOP)以及预期的状态(START),如果不相等则通过预期的状态执行相应的逻辑(ETCD直呼内行~~~)原创 2023-04-16 20:55:46 · 387 阅读 · 0 评论 -
15_Flume之TailSource源码修改(修复Flume任务故障文件重命名数据丢失)
我们常用TailSource来监听日志文件,被监听的日志文件是常配置了按时间滚动生成方式的,也就是一天一个文件,到零点时会将gather.log更名为gather-20230415.log。重启服务后,任务从偏移量记录表中找到iNode + gather.log 对应的偏移量,但是日志文件中新生成了 gather.log,原来的已经更名为gather-20230415.log,假设,设置Flume任务只监听 gather.log(也可以监听整个日志文件夹,但有问题,看完下面就明白) ,原创 2023-04-16 20:55:28 · 368 阅读 · 0 评论 -
14_Flume之事务
同理,事务以类似的方式处理从channel到sink的传递过程,如果因为某种原因使得event无法记录,那么事务将会回滚,且所有的event都会保持到channel中,等待重新传递。Flume的事务机制保证了source产生的每个event都会传送到sink中(如果失败会无限重试),flume采用的是At-least-once的提交方式,这样就造成每个source产生的event至少到达sink一次,这种方式保证了数据的可靠性,但数据可能重复。rollback的关键代码。原创 2023-04-16 20:55:03 · 225 阅读 · 0 评论 -
13_Flume之监控
Flume自带的有两种监控方式, http监控和ganglia监控,用户还可以实现自定义的监控。字段名称含义备注打开的连接数组件类型追加到channel中的批数量source端刚刚追加的批数量成功放入channel的event数量source追加目前收到的数量组件开始时间、结束时间source端成功收到的event数量source追加目前放入channel的数量成功放入channel的event数量通道使用比例尝试放入将event放入channel的次数。原创 2023-04-16 20:54:45 · 505 阅读 · 0 评论 -
12_Flume之连接ACL的Kafka
【代码】12_Flume之连接ACL的Kafka。原创 2023-04-16 20:54:34 · 100 阅读 · 0 评论 -
11_Flume之启动任务脚本
将Flume客户端和真正任务配置的文件夹隔离开通过启动命令指定每个任务的执行日志真正任务配置中的可变参数 均采用传参使用,用于生产开发测试不同环境的不同参数。原创 2023-04-16 18:16:34 · 318 阅读 · 0 评论 -
10_Flume之拦截器
Inteceptor主要用来对event进行过滤和修改,Interceptor可以将处理结果传递给下一个Interceptor从而形成InterceptorChain。多个Interceptor在配置文件中以空格分隔,拦截器的顺序就是event处理的顺序,只有一个拦截器通过之后才会进行到下一个拦截器。Inteceptor相关源码在flume-ng-core的org.apache.flume.interceptor下。环境:Java - Maven pom.xml--此工具会将全部依赖打包--> <!原创 2023-04-15 20:54:13 · 301 阅读 · 0 评论 -
09_Flume之Sink的Processors
当被选择器被调用的时候,它不会屏蔽故障的sink,继续尝试访问每一个可用的sink,如果所有的sink都故障了,选择器则无法给sink传播数据。如果backoff被开启,则sink processor会屏蔽故障的sink,选择器会在一个给定的超时时间内移除它们,当超时时间完毕后,sink还是无法访问,则超时时间以指数方式增长。Sink Processors可以使在Sink Group中所有sink具有负载均衡的能力,或者在一个sink失效后切换到另一个sink的fail over模式。原创 2023-04-15 20:51:40 · 141 阅读 · 0 评论