• Flume


         Flume主要是一个代理。Flume 传输的数据的基本单位是 Event,如果是文本文件,通常是一行记录。flume有三个核心组件,主要是source,channel,sink。 通过这些组件,Event 可以从一个地方流向另一个地方。
     
         Flume 使用事务性的方式保证传送Event整个过程的可靠性。Sink 必须在 Event 已经被传达到下一站agent里,或者,已经被存入外部数据目的地之后,才能把 Event 从 Channel 中 remove 掉。
     
    ①Source 可以接收外部源发送过来的数据。不同的 source,可以接受不同的数据格式。比如有目录池(spooling directory)数据源,可以监控指定文件夹中的新文件变化,如果目录中有文件产生,就会立刻读取其内容。
     
    ②Channel 是一个存储地,接收 source 的输出,直到有 sink 消费掉 channel 中的数据。channel 中的数据直到进入到下一个channel中或者进入终端才会被删除。当 sink 写入失败后,可以自动重启,不会造成数据丢失,因此很可靠。
     
    ③Sink 会消费 channel 中的数据,然后送给外部源或者其他 source。如数据可以写入到 HDFS 或者 HBase 中。因此,即使 Java 虚拟机当掉,或者操作系统崩溃或重启,再或者事件没有在管道中成功地传递到下一个代理(agent),这一切都不会造成数据丢失。
     
    主要的channel有两种,Memory channel和File channel。
     
    1. File Channel 是一个持久化的隧道(Channel),它持久化所有的事件,并将其存储到磁盘中。因此,即使 Java 虚拟机当掉,或者操作系统崩溃或重启,再或者事件没有在管道中成功地传递到下一个代理(agent),这一切都不会造成数据丢失。
    2. 。Memory Channel 是一个不稳定的隧道,其原因是由于它在内存中存储所有事件。如果 Java 进程死掉,任何存储在内存的事件将会丢失。另外,内存的空间受到 RAM大小的限制,而 File Channel 这方面是它的优势,只要磁盘空间足够,它就可以将所有事件数据存储到磁盘上。
     
    附例:最简单的单一代理flume
     
             
    执行
    $ bin/flume-ng agent -c conf -f ./conf/example.conf -n a1 -Dflume.root.logger=INFO,console
     
    参数说明
    • -n 指定agent名称
    • -c 指定配置文件目录
    • -f 指定配置文件
    • -Dflume.root.logger=DEBUG,console 设置日志等级
     
    执行
    $ telnet localhost 44444
    Hello World!
  • 相关阅读:
    火车头采集器如何采集QQ群成员中的QQ号
    Unix目录结构的来历
    加速Windows 2003关机速度的设置方法
    win2003 序列号 windows2003 sp2可用序列号大全(准版与企业版)
    自己动手在win2003系统中添加虚拟网卡
    Windows Server 2003下DHCP服务器的安装与简单配置图文教程
    win2003远程桌面怎么切换到多用户?
    Win2003打开网页时总是提示添加网址到信任站点的设置方法
    我们正在招聘java工程师,想来美团工作吗?
    JUC回顾之-AQS同步器的实现原理
  • 原文地址:https://www.cnblogs.com/carleunderwood/p/7149821.html
Copyright © 2020-2023  润新知