Flume教程

Flume NetCat源

本章通过一个例子来解释如何生成事件并随后将它们记录到控制台中。为此,我们使用 NetCat 源和 logger 接收器。

先决条件

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

配置Flume

我们必须使用 conf 文件夹中的配置文件来配置源、通道和接收器。本章中给出的示例使用了 NetCat Source、Memory channellogger sink

NetCat 源

在配置NetCat源时,我们必须在配置源时指定一个端口。现在,源(NetCat 源)侦听给定的端口并接收我们在该端口中输入的每一行作为单独的事件,并通过指定的通道将其传输到接收器。
在配置此源时,您必须为以下属性提供值-
channels Source type-netcat bind-要绑定的主机名或 IP 地址。 port-我们希望源监听的端口号。

Channel

我们正在使用 内存通道。要配置内存通道,您 必须为通道类型提供一个值。下面给出了配置内存通道时需要提供的属性列表-
type-它保存通道的类型。在我们的示例中,类型为 MemChannel Capacity-它是存储在通道中的最大事件数。其默认值为 100。(可选) TransactionCapacity-它是通道接受或发送的最大事件数。其默认值为 100。(可选)。

HDFS Sink

这个接收器记录所有传递给它的事件。通常,它用于测试或调试目的。要配置此接收器,您必须提供以下详细信息。
Channel type-记录器 hdfs.pathHDFS 中要存储数据的目录路径。

示例配置文件乐

下面给出了一个配置文件的例子。复制此内容并保存为 netcat.conf 到 Flume 的 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。下面给出的是已启动并侦听端口 56565 的 NetCat 源的命令提示符窗口的快照。
执行

将数据传递给源

要将数据传递给 NetCat 源,您必须打开配置文件中给出的端口。打开一个单独的终端并使用 curl 命令连接到源 (56565)。连接成功后会提示" 已连接",如下图。
$ curl telnet://localhost:56565 
connected 
现在您可以逐行输入数据(在每行之后,您必须按 Enter)。 NetCat 源将每一行作为单独的事件接收,您将收到一条收到的消息" OK"。
无论何时完成传递数据,您都可以按 ( Ctrl+C) 退出控制台。下面给出的是我们使用 curl 命令连接到源的控制台的快照。
传递数据
在上述控制台中输入的每一行都将作为单独的事件被源接收。由于我们使用了 Logger 接收器,这些事件将通过指定的通道(在本例中为内存通道)登录到控制台(源控制台)。
以下快照显示了记录事件的 NetCat 控制台。
NetCat 控制台
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4