Apache Flume NetCat Source Apache Flume序列发生器源 本章以一个示例来说明如何生成事件并随后将它们记录到控制台中。为此,我们使用 NetCat 源和 记录器接收 器。 先决条件 要运行本章提供的示例,您需要安装 Flume 。 配置Flume 我们必须使用 conf 文件夹中的配置文件配置源,通道和接收器。本章给出的示例使用 NetCat源,内存通道 和 记录器接收器 。 NetCat来源 在配置NetCat源时,我们必须在配置源时指定端口。现在,源(NetCat源)侦听给定端口并接收我们在该端口中输入的每一行作为单个事件,并通过指定的通道将其传输到接收器。 配置此源时,您必须为以下属性提供值 - channels Source type - netcat bind - 要绑定的主机名或IP地址。 port - 我们希望源侦听的端口号。 渠道 我们正在使用内存通道。要配置内存通道, 必须为通道类型提供值。下面给出了配置内存通道时需要提供的属性列表 - type - 它保存通道的类型。 在我们的示例中,类型是 MemChannel 。 Capacity - 它是通道中存储的最大事件数。 其默认值为100.(可选) TransactionCapacity - 它是通道接受或发送的最大事件数。 其默认值为100.(可选)。 记录器接收器 此接收器记录传递给它的所有事件。通常,它用于测试或调试目的。要配置此接收器,您必须提供以下详细信息。 Channel type - 记录器 示例配置文件 下面给出了配置文件的示例。复制此内容并将其保存为 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 = 1000 NetcatAgent.channels.MemChannel.transactionCapacity = 100 # 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_CONF --conf-file $FLUME_CONF/netcat.conf --name NetcatAgent -Dflume.root.logger=INFO,console 如果一切顺利,源会开始侦听给定的端口。在这种情况下,它是 56565 。下面给出了NetCat源的命令提示符窗口的快照,该窗口已启动并侦听端口56565。 将数据传递给源 要将数据传递到NetCat源,您必须打开配置文件中给出的端口。打开一个单独的终端并使用 curl 命令连接到源(56565)。连接成功后,您将收到“已 连接 ” 消息,如下所示。 $ curl telnet://localhost:56565 connected 现在您可以逐行输入数据(在每行之后,您必须按Enter键)。NetCat源将每条线路作为单独的事件接收,您将收到“ OK ” 收到的消息。 无论何时完成传递数据,都可以按( Ctrl + C )退出控制台。下面给出了我们使用 curl 命令连接到源的控制台的快照。 在上述控制台中输入的每一行都将作为源的单个事件接收。由于我们使用了 Logger接收 器,因此这些事件将通过指定的通道(在本例中为内存通道)登录到控制台(源控制台)。 以下快照显示记录事件的NetCat控制台。 Apache Flume序列发生器源