Flume.apache.org 官方文档学习笔记 part four

    JMS 源:
        jms源阅读从jms目的地发来的信息,例如队列,主题等。  作为一个jms应用程序,他应该和jms提供程序一起工作,但是仅使用ActiveMQ进行测试。JMS源提供可配置的批量大小,消息选择器,用户/传递还有消息到接收器事件转换器。 要注意的是,供应商提供的jms jar包 应该包括在flume的类路径中,使用plugins.d目录(首选),命令行上的-classpath或者flume-env.sh文件中的FLUME_CLASSPATH 变量。

        要求的属性用粗体表示了:
        Flume.apache.org 官方文档学习笔记 part four

 

目录池数据源(Spooling Directory Source):
        这个源能让你通过将要摄取的文件放入到磁盘上的“Spooling”目录来摄取数据.此源将读取新文件的指定目录,并且会在新文件出现的时候解析事件。 事件解析逻辑是可插入的。当给出的文件已经被完全读取到信道之后,它就会被重命名,以指出已经完成(或者可选地删除)。

        跟Exec源不同,即使Flume重启,或者被停止,此源都是可靠的,并且数据不会丢失。作为此可靠性的代价,只能将不可变的,独特命名的文件放入该目录。 Flume尝试去检测这些问题,如果违反了就会指出失败:
        1.如果在放入假脱机目录之后,还对文件进行写入,那么Flume就会打印出一个错误到日志文件,并且结束这个进程。
        2.如果一个文件的名字在后面一段时间又被使用了,那么Flume也会打印一个错误到日志文件,并且结束该进程。


        为了避免上述这些问题,当一些文件被放入spooling目录的时候,为他们增加一个独一无二的标示符去记录文件名字,可能是有效的。

        不管此源如何保证可靠性,这儿肯定还是有一些情况出现,如果确定下游发生了错误,那么Events可能会重复。  这跟其他Flume组件提供的保证是一样的。

 

Flume.apache.org 官方文档学习笔记 part four

名为a-1的代理的示例:
            a1.channels = ch-1
        a1.sources = src-1

        a1.sources.src-1.type = spooldir
        a1.sources.src-1.channels = ch-1
        a1.sources.src-1.spoolDir = /var/log/apache/flumeSpool
        a1.sources.src-1.fileHeader = true

        事件反序列化器:
            以下事件反序列化器随Flume一起提供
            LINE
                这个反序列化器文本输入的每一行都会生成一个事件。

 

Flume.apache.org 官方文档学习笔记 part four

        BlobDeserializer
                这个反序列化器每个事件读取二进制大对象(BLOB),典型地一个BLOB一个文件.例如,一个PDF或者JPG文件。 注意的是,这个方法并不适用于特别大的对象,因为整个BLOB是缓冲在RAM中的。

 

Flume.apache.org 官方文档学习笔记 part four

      

Taildir Source 
             注意:此源是作为一个预览特征来供的,它并不能在Windows上运行。
             查看特定的文件,并在检测到添加到每个文件的新的行后几乎实时地拖尾它们。 如果正在写入新行,这个源就会在等待写入完成的时间内重新尝试读取它们。

             此源是可靠的,并且不会丢失数据,即使实在尾部文件轮流替换的时候。 它定期地写每个文件最后读取的位置到给出的文件位置,采用json的格式。
             如果flume停止或者因为某些原因停掉了,它也能按照存在的写入位置文件中的尾部尾部位置重启。 
             在另一种情况,此源也能用给出的位置文件启动tailing在每个文件的任意位置。当没有位置文件在指定的路径的时候,它将会在每个文件的第一行默认启动tailing。

             文件会被按照他们被修改的事件顺序消耗。 那些修改事件最久的文件会被第一个消耗。

             此源不重命名、删除或者修改这些被tailed的文件。当前,此源不支持tailing 二进制文件。 它会一行一行地读取文本文件。
     

 

       Flume.apache.org 官方文档学习笔记 part four

    

Twitter 1% firehose Source(experimental)

             警告:此源是高度实验性的(应该意思就是没测试好),可能会在次要版本的Flume之间发生变化。 风险自己承担。

             通过Streaming-API连接到1% 简单twitter firehose的实验源,不断推文,并将下载的转成Avro格式然后发送Avro事件到下流Flume接收器。要求消耗和连接符号还有推特开发者的账户密码。需要的属性都被粗体标识了:

             

Flume.apache.org 官方文档学习笔记 part four