Flume源码更改】的更多相关文章

1.源码更改场景:如果使用 0.8 版本 Kafka 并配套 1.6 版本 Flume,由于 Flume 1.6 版本没有Taildir Source 组件,因此,需要将 Flume 1.7 中的 Taildir Source 组件源码编译打包后,放入Flume1.6 安装目录的 lib文件目录下.1.6想要移植1.7的Taildir Source功能. 而Taildir Source源码中,主要是利用  inode+文件名 来进行文件唯一性判定,一旦文件改名,TaildirSource会将它当…
目前有一个需求,就是Flume可以作为一个类似于tomcat的服务器,可以通过post请求进行访问,并且路径需要:ip:port/contextPath格式. 经过一些资料获悉,httpSource只是httpSource的一个玩具工具,可以说毛坯版,目前仅仅支持的是按照ip:port访问,并不具备servlet这种功能. 那么打开源码看一下: 这上面便是httpsource源码了,可以看到主要是5个类:HTTPBadRequestException,HTTPSource,HTTPSourceC…
Overview source采集的日志首先会传入ChannelProcessor, 在其内首先会通过Interceptors进行过滤加工,然后通过ChannelSelector选择channel. Source和Sink之间是异步的,sink只需要监听自己关系的Channel的变化即可. sink存在写失败的情况,flume提供了如下策略: 默认是一个sink,若写入失败,则该事务失败,稍后重试. 故障转移策略:给多个sink定义优先级,失败时会路由到下一个优先级的sink.sink只要抛出一…
IDEA查看源码 IDEA快捷键 1 查看接口的实现类:Ctrl+Alt+B 选中按快捷键,然后跳到实现类的地方去 2 切换页面:Alt+<- 和 Alt+-> Alt+-> 3 查看Java方法调用树(被调/主调):Ctrl+Alt+H 分为调用当前方法的树.当前方法调用的下级方法 4 查看类继承关系图:Ctrl+Alt+U 5 查看当前类的继承树:Ctrl+H 6 查看定义的变量在哪里被调用:Ctrl+Alt+F7 7 查看一个类中有什么方法:Alt+7 或 点左侧边栏Structu…
package org.apache.flume.sink; import com.google.common.base.Strings; import org.apache.flume.Channel; import org.apache.flume.Context; import org.apache.flume.Event; import org.apache.flume.EventDeliveryException; import org.apache.flume.Transaction…
1.找到要改的类所在包名地址. 比如标签名的更改: <s:debug></s:debug> (1)ctril+鼠标左键========双击标签,就会弹出标签所在的类的文本 (2)这一行就是对应的包名地址 (3)ctil+shift+T,快速搜索类 (4)点击ok,就会弹出它的.clas文件,但是权限是read-only,所以我们要建立一个同名的包和一个同名的类 (5)新建一个包package org.apache.struts2.views.jsp.ui; 新建一个类:DebugT…
前言 最近看了看Apache Flume,在虚拟机里跑了一下flume + kafka + storm + mysql架构的demo,功能很简单,主要是用flume收集数据源(http上报信息),放入到kafka队列里,然后用storm消费kafka里的资源,计算结果并存入到mysql中: 在这期间遇到了很多问题,也学到了一些知识,打算做个笔记吧,帮助自己也帮助别人: 先从Flume源码的编译开始: 下载 下载源码很简单,去官网或者去github下载,Apache Flume 1.7.0的git…
本节课分成二部分讲解: 一.Spark Streaming on Polling from Flume实战 二.Spark Streaming on Polling from Flume源码 第一部分: 推模式(Flume push SparkStreaming) VS 拉模式(SparkStreaming poll Flume) 采用推模式:推模式的理解就是Flume作为缓存,存有数据.监听对应端口,如果服务可以链接,就将数据push过去.(简单,耦合要低),缺点是SparkStreaming…
flume基本思想: source负责收集数据,channel负责缓存数据,sink负责消费channel中的数据,具体使用方式这里不赘述 生命周期管理: 生命周期相关代码在flume-ng-core文件夹下的lifecycle子文件夹内 flume的所有组件(除了monitor service)都有生命周期的概念,主要作用是用来标记组件目前所属的状态.flume组件的生命周期有四个状态,分别是IDLE,START,STOP,ERROR,意义如下: IDLE 组件已经构造完成 START 组件已…
不多说,直接上干货! 如果在一个界面里,可以是单个项目 注意:本文是以gradle项目的方式来做的! 如何在IDEA里正确导入从Github上下载的Gradle项目(含相关源码)(博主推荐)(图文详解) 注意:本文是以maven项目的方式来做的! 如何在IDEA里正确导入从Github上下载的Maven项目(含相关源码)(博主推荐)(图文详解) 如果在一个界面里,可以是多个项目 注意:本文是以maven项目的方式来做的! IDEA学习系列之IDEA里如何正确设置(类似eclipse里同一个wor…