Flume
文章平均质量分 73
Flume
张俊杰1994
一个大龄的码农.目前是Java+Python开发,业余时间研究减肥健身养生,后期可能会去做减肥健身博主.
展开
-
Flume 拦截器
Interceptors 是拦截 event对象的.是在Source放到Channel的过程中拦截的,那么你就可以在放到Channel之前对Event对象进行处理,比如说加工一下Event或者删除一下Event都行.在Flume中允许使用拦截器对传输中的event进行拦截和处理!拦截器必须实现org.apache.flume.interceptor.Interceptor接口。拦截器可以根据开发者的设定修改甚至删除event!Flume同时支持拦截器链,Interceptors 可以设置多个,这样的话多个原创 2021-02-07 17:51:15 · 346 阅读 · 0 评论 -
Flume事务
Flume事务我们都知道Flume是一个日志文件传输的工具,传输过程会经过三大步骤:1.通过source 把数据从数据源(网络端口,本地磁盘等)读出出来2.通过source把数据传入到channel里面3.再把数据从channel传输到sink里面,sink把数据传给目的地(hdfs).当然传输数据的过程并不是只有这三个步骤,flume 竟然是传输数据的,所以得考虑到数据传输时数据的完整性 . Flume在传输数据的时候很有可能因为传输速率的不一致导致channel满了,从而导致数据丢失。ch原创 2021-02-07 17:45:51 · 241 阅读 · 0 评论 -
Flume之将两个Flume的数据聚合到第三个Flume里面*
参考图使用场景比如说你收集的日志信息最终都需要写到HDFS上,但是HDFS都是公司内部来使用的,不会让外网来访问的,因此公司可能会有一台机器Flume3,只有Flume3这一台机器有权限来访问HDFS,那么这个时候可能有Flume1和Flume2两个机器是收集外网的数据,比如这两个机器都各自开放了一个端口让别的程序来往这里写入,但是Flume1和Flume2是没权限往HDFS里面写入的.这样解决办法就是让Flume1和Flume2把数据传给Flume3,让Flume3去访问HDFS.准备三台机原创 2020-10-26 18:16:59 · 512 阅读 · 0 评论 -
Flume之负载均衡Load balancing Sink Processor和案例 *
Load balancing Sink Processor负载均衡的sink processor! Load balancing Sink Processor维持了sink组中active状态的sink.使用round_robin(轮询) 或 random(随机) 算法,来分散sink组中存活的sink之间的负载假设当前sink组里面有三个sink, 这时候Load balancing Sink Processor 只会维护存活状态的sink,如果某个sink挂掉了就会从sink组里面去掉.然后发原创 2020-10-26 18:16:20 · 574 阅读 · 2 评论 -
Flume自定义Source
简介Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。官方提供的source类型已经很多,但是有时候并不能满足实际开发当中的需求,此时我们就需要根据实际需求自定义某些source。官方也提供了自定义source的接口:https://flume.apache.org/F原创 2020-10-26 18:15:37 · 412 阅读 · 0 评论 -
Flume故障转移Failover Sink Processor和demo *
Failover Sink ProcessorFailover Sink Processor维护了一个多个sink的有优先级的列表,按照优先级保证,至少有一个sink是可以干活的(处理event的)如果根据优先级发现,优先级高的sink故障了,故障的sink会被转移到一个故障的池中冷却.在冷却时,故障的sink也会不管尝试发送event,一旦发送成功,此时会将故障的sink再移动到存活的池中.必需配置:sinks – Space-separated list of sinks that are p原创 2020-10-26 12:23:42 · 336 阅读 · 0 评论 -
Flume根据Header里面的属性来判断发送到哪个机器上面 *
准备三台机器,安装好Flume前言(三)Multiplexing Channel SelectorMultiplexing Channel Selector根据evnet header中属性,参考用户自己配置的映射信息,将event发送到指定的channela1.sources = r1a1.channels = c1 c2 c3 c4a1.sources.r1.selector.type = multiplexinga1.sources.r1.selector.header = sta原创 2020-10-26 11:35:05 · 968 阅读 · 0 评论 -
Flume的多路复用案例 *
需求Flume1监控SpringBoot的日志信息, 然后将监控到的内容传递给Flume2和Flume3 ,Flume2 和Flume3 可以各自处理各自的逻辑,比如说Flume2 上传到HDFS上, Flume3 可以上传到Kafka里面…这里演示Flume2和Flume3就直接通过打印日志的形式演示了.找一个SpringBoot项目随便找一个SpringBoot项目, 注意,要在启动zjj101的agent之前启动这个SpringBoot项目可以用我这个:https://blog.csd原创 2020-10-24 17:27:54 · 494 阅读 · 0 评论 -
Flume监控端口的内容
前置条件安装了Flume安装 netcat 工具: netcat安装试玩博客Demo概述定义agent文件在/apache-flume-1.7.0/conf/目录下新建个job目录,在job目录下面新建个flume-netcat-logger.conf配置文件注:配置文件来源于官方手册http://flume.apache.org/FlumeUserGuide.html#a1是agent的名称,a1中定义了一个叫r1的source,如果有多个,使用空格间隔# r1 表示是a1的sour原创 2020-10-23 18:09:17 · 261 阅读 · 0 评论 -
Flume 实时监控单个配置文件上传到HDFS上面去 *
需求实时监控Hive日志内容,将内容写入到HDFS前置条件需要有hive Hadoop HDFS Flume Zookeeper分析tail -f 命令可以实时监控文件,将监控到的信息封装成event存到channel里面,然后再用sink写到hdfs上.组件选择因为数据源需要运行一个Linux命令,所有需要使用EXECSourceEXECSource介绍: execsource会在agent启动时,运行一个linux命令,运行linux命令的进程要求是一个可以持续产生数据的进程,将标准原创 2020-10-23 18:06:51 · 562 阅读 · 0 评论 -
Flume之两个Agent串联接收消息
概述这种模式是将多个flume顺序连接起来了,从最初的source开始到最终sink传送的目的存储系统。此模式不建议桥接过多的flume数量, flume数量过多不仅会影响传输速率,而且一旦传输过程中某个节点flume宕机,会影响整个传输系统。两套agent可能是两个机器,一旦发生两个agent串联,头一个agent的sink必须选AvroSink,然后第二个agent的Source要选AvroSource.案例在zjj101机器上agent1 使用架构 netcatsource—memory原创 2020-10-23 18:03:37 · 635 阅读 · 2 评论 -
Flume编写拦截器
前提已经安装了Kafka Flume Zookeeper编写Flume拦截器 <dependency> <groupId>org.apache.flume</groupId> <artifactId>flume-ng-core</artifactId> <version>1.7.0</version> </dependency>MyInterceptorimport java原创 2020-10-20 12:05:16 · 851 阅读 · 0 评论 -
Flume将Tomcat日志收集到Kafka里面 *
前提https://editor.csdn.net/md?not_checkout=1&articleId=109175329编写Flume配置文件f1.conf#a1是agent的名称,a1中定义了一个叫r1的source,如果有多个,使用空格间隔a1.sources = r1a1.channels = c1 c2#组名名.属性名=属性值a1.sources.r1.type=TAILDIRa1.sources.r1.filegroups=f1# 一批写多少个a1.sourc原创 2020-10-20 12:04:47 · 380 阅读 · 2 评论 -
Flume 配置环境变量 *
开始配置环境变量进入 /etc目录下面 修改profile 配置文件[root@zjj101 etc]# pwd/etc[root@zjj101 etc]# vim profile# 配置Flume 环境变量开始export FLUME_HOME=/root/soft/apache-flume-1.7.0export FLUME_CONF_DIR=$FLUME_HOME/confexport FLUME_LOG_DIR=$FLUME_HOME/logexport PATH=$PATH原创 2020-10-17 20:10:09 · 2883 阅读 · 0 评论