Flume NetCat 源

  • 配置

    本章以示例为例,说明如何生成事件并随后将其登录到控制台。为此,我们使用了NetCat源和logger接收器。
  • 先决条件

    要运行本章提供的示例,您需要安装Flume。
  • 配置Flume

    我们必须使用conf文件夹中的配置文件配置源,通道和接收器。本章中给出的示例使用NetCat源,memory 通道和 logger 接收器。
    NetCat来源
    在配置NetCat源时,我们必须在配置源时指定端口。现在,源(NetCat源)侦听给定的端口,并接收我们在该端口中输入的每行作为一个单独的事件,并将其通过指定的通道传输到接收器。
    配置此源时,必须为以下属性提供值-
    • channels
    • Source type - netcat
    • bind-要绑定的主机名或IP地址。
    • port-我们希望源监听的端口号。
    渠道
    我们使用memory通道。要配置memory通道,必须为通道类型提供一个值。以下是配置memory通道时需要提供的属性列表-
    • type - 它保存通道的类型。在我们的示例中,类型为MemChannel。
    • Capacity - 这是通道中存储的最大事件数。其默认值为100。(可选)
    • TransactionCapacity - 它是通道接受或发送的最大事件数。其默认值为100。(可选)。
    logger 接收器(sink)
    logger 传递给它的所有事件。通常,它用于测试或调试目的。要配置此接收器,必须提供以下详细信息。
    • Channel
    • type - logger
  • 示例配置文件

    下面给出的是配置文件的示例。复制此内容并将其另存为Flume的conf文件夹中的netcat.conf。
    
    # Naming the components on the current agent
    NetcatAgent.sources = Netcat   
    NetcatAgent.channels = MemChannel 
    NetcatAgent.sinks = LoggerSink  
    
    # Describing/Configuring the source 
    NetcatAgent.sources.Netcat.type = netcat 
    NetcatAgent.sources.Netcat.bind = localhost
    NetcatAgent.sources.Netcat.port = 56565  
    
    # Describing/Configuring the sink 
    NetcatAgent.sinks.LoggerSink.type = logger  
    
    # Describing/Configuring the channel 
    NetcatAgent.channels.MemChannel.type = memory 
    NetcatAgent.channels.MemChannel.capacity = 10000 
    NetcatAgent.channels.MemChannel.transactionCapacity = 1000
     
    # Bind the source and sink to the channel 
    NetcatAgent.sources.Netcat.channels = MemChannel
    NetcatAgent.sinks.LoggerSink.channel = MemChannel
    
  • 执行

    浏览Flume主目录并执行该应用程序,如下所示。
    
    $ cd $FLUME_HOME
    $ ./bin/flume-ng agent --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/netcat.conf  --name NetcatAgent -Dflume.root.logger=INFO,console
    
    如果一切顺利,则源开始侦听给定的端口。在这种情况下为56565。下面给出的是NetCat源命令提示符窗口的快照,该窗口已启动并正在侦听端口56565。
    flume
    将数据传递到源
    要将数据传递到NetCat源,必须打开配置文件中指定的端口。打开另外一个终端,然后使用curl命令连接到信号源(56565)。连接成功后,您将收到一条“connected”消息,如下所示。
    
    $ curl telnet://localhost:56565 
    connected 
    
    现在,您可以逐行输入数据(每行之后,必须按Enter键)。NetCat源将每一行作为一个单独的事件接收,您将收到一条接收到的消息“OK”。
    只要完成了传递数据的操作,就可以通过按(Ctrl + C)退出控制台。下面给出的是我们使用curl命令连接到源的控制台的快照。
    传递数据
    源将在上述控制台中输入的每一行作为一个单独的事件接收。由于我们使用了Logger接收器,因此这些事件将通过指定的通道(在这种情况下为memory通道)登录到控制台(源控制台)。
    以下快照显示了logger事件的NetCat控制台和curl命令连接到源的控制台。
    flume