flume知识点总结
首先介绍一下在flume中常用的一个数据格式,以及使用该格式的优缺点:
从flume写数据到hdfs中的时候,使用二进制格式相对于使用纯文本来说是一种更好的选择,因为大多数二进制格式都有一些方法指明记录中损坏或者不完整等的问题。 二进制记录有助于检测他们并将这些不正确的记录进行忽略,例如flume中常用的二进制数据格式avro,这个格式是可以进行拆分的,并且可以检测文件中损坏或者不完整的记录。
flume agent 的内部原理:
每个flume agent 主要有三个组件组成,source,channel,sink;
source是从一些其他产生数据的应用中接受数据的活跃组件。有自己生产数据的source,不过这些source一般是用作测试目的,source可以用来监听一个或者多个网络端口,用于接受数据或者从本地文件系统中读取数据。每个source必须至少连接一个channel,基于一些标准,一个source可以写入几个channel中,复制事件到所有或某些channel中。
channel:channel一般来说是一个被动组件,channel的行为想一个队列,source写入到他们,sink从他们中进行数据读取。
sink:sink连续轮询各自的channel来读取和删除事件,sink将事件推送到下一阶段或者最终的目的地
flume 本身不限制agent中source、channel、sink的数量,因此flume可以接受事件,并可以通过配置将事件复制到多个目的地。
拦截器是一段代码,可以基于某些它完成的处理来读取事件或者删除和修改事件,基于某些标准,例如正则表达式,拦截器可以删除事件,为事件添加新的报头或者移除现有的报头等。每个source可以配置使用多个拦截器,按照配置中定义的顺序被调用,将拦截的结果传递给莲的下一个单元
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!