Flume(1.9入门篇)


一、简介:

Flume是Cloudera提供的一个高可用,高可靠,分布式的海量日志数据采集、聚合和传输的系统。Flume基于流式架构,灵活简单。

二、结构(官网图)

在这里插入图片描述

三、部件介绍:

①Agent:

它是一个独立Flime进程,也是一个jvm进程,它的主要组件有Source、Channel和Sink,它以事件的形式将数据从源头送至目的。

②Source:

负责接收数据的Flume Agent组件,它有很多类型,用来接收不同类型和格式的日志数据,类型有:avro、thrift、exec、jms、spooling directory、netcat、 taildir 、sequence generator、syslog、http、legacy、自定义等;

Avro:

Avro源使用Avro RPC机制,Flume主要的RPC Source也是 Avro Source,可以连接Avro Sink,实现多个flume连接;

Netcat:

监听一个给定的端口,然后把text文件的每一行转换成一个event,适用于监听一个端口;

Thrift:

Thrift是Google开发的用于跨语言RPC通信,它拥有功能强大的软 件堆栈和代码生成引擎,允许定义一个简单的IDL文件来生成不同语言的代码,服务器端和客户端通过共享这个IDL文件来构建来完成通信;

Exec:

通过执行Linux的命令,进行读取文件的数据:例如监控单个文件追加;

JMS:

JMS Source从JMS目标(如队列或者主题)读取消息。JMS应用程序应该可以与任何JMS提供程序一起工作,但是只能使用ActiveMQ进行测试。要求属性是粗体字;

Taildir:

适合用于监听多个实时追加的文件,并且能够实现断点续传;

Spooling directory:

适合用于同步新文件,但不适合对实时追加日志的文件进行监听并同步;

Sequence generator:

一个简单的序列生成器可以不断生成events,带有counter计数器,从0开始,以1递增,在totalEvents停止。当不能发送events到channels时会不断尝试;

Syslog:

读取系统日志,并生成Flume events。UDP source以整条消息作为一个简单event。TCP source以新一行”n“分割的字符串作为一个新的event;

Http:

启动后会拉起一个web服务来监听指定的ip和port。常用的使用场景:对于有些应用环境中,不能部署Flume SDK及其依赖项,可以在代码中通过HTTP而不是Flume的PRC发送数据的情况,此时HTTP SOURCE可以用来将数据接收到Flume中;

Legacy:

支持Avro和Thrift RPC 连接。为了使用两个Flume 版本搭建的桥梁,你需要开始一个带有avroLegacy或者thriftLegacy source的Flume 1.x agent。0.9.4agent应该有agent Sink指向1.x agent的host/port。

③Channel:

Channel是位于Source和Sink之间的缓冲区。因此,Channel允许Source和Sink运作在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入操作和几个Sink的读取操作,其本身自带两个channel,分别是:memory和file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值