Flume官方文档阅读02

设置

设置代理

Flume代理配置存储在一个本地配置文件中,这是一个遵循Java属性文件格式的文本文件,可以在一个配置文件中指定一个或多个代理的配置。配置文件中包含了一个代理的source、sink和channel属性以及它们如何连接在一起形成数据流。

配置单个组件

流中的每个组件(source、sink、channel)都有特定类型和实例的姓名、类型和属性集。例如,一个Avro source需要一个主机地址(或IP地址)和端口号来接收数据。一个memory channel可以具有最大队列大小(容量),一个HDFS sink需要知道文件系统的URI、创建文件的路径和文件轮转频率等。组件所有的此类属性需要在托管Flume代理的属性文件中设置。

将各个部分连接在一起

代理需要知道要加载哪些组件以及如何连接来构成流。这是通过列出代理中每个source、sink、channel名称,然后指定连接到每个source、sink的channel来完成。例如,代理通过名叫file-channel的file channel将事件从名叫avroWeb的Avro Source流向HDFS sink hdfs-cluster1。配置文件包含这些组件的名称,并且file channel是所有Avro source和HDFS sink的共享管道。

启动代理

通过Flume安装包下bin目录中的flume-ng shell脚本来启动一个代理。你需要在命令行指定代理名称、config目录和配置文件:
$ bin/flume-ng agent -n $agent_name -c conf -f conf/flume-conf.properties.template
代理将会运行给定配置文件中的source和sink。

一个简单的示例

在这里,我们给出一个配置文件例子,描述单节点Flume的部署。这个例子允许用户生成事件,并将其记录到控制台。

# example.conf: A single-node Flume configuration

# Name the components on this agent  代理的组件
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source  source的相关属性配置
a1.sources.r1.type = netcat       # 类型
a1.sources.r1.bind = localhost  # 绑定IP
a1.sources.r1.port = 44444   # 端口

# Describe the sink   sink的配置
a1.sinks.k1.type = logger  # 类型

# Use a channel which buffers events in memory  #  channel配置
a1.channels.c1.type = memory  # 类型
a1.channels.c1.capacity = 1000   # 容量
a1.channels.c1.transactionCapacity = 100  

# Bind the source and sink to the channel  # source和sink绑定channel
a1.sources.r1.channels = c1  
a1.sinks.k1.channel = c1  # 一个sink只能绑定一个channel ,一个channel可以绑定多个sink

这个配置文件定义了单个代理a1,a1有一个监听着44444端口数据的source,一个缓冲内存中事件数据的channel,一个显示事件数据到控制台的sink。配置文件命名各个组件,然后描述它们的类型和配置参数。给定的配置文件可能会定义多个命名的代理,当一个给定的Flume进程启动时,会传递一个标志,告诉它要显示哪个命名代理。
给定了配置文件,我们可以通过如下命令启动Flume:
bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console

在完整部署中,通常会包含一个选项:–conf=conf-dir。conf-dir目录应该包含一个flume-env.sh shell脚本和一个潜在的log4j属性文件。在这个例子中,我们通过一个java选项来迫使Flume登录在控制台,我们没自定义环境脚本。
从一个单独的终端,我们可以telnet端口44444并向Flume发送一个事件:

 $ telnet localhost 44444
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Hello world! <ENTER>
OK

原始的Flume终端将在日志消息中输出事件。

12/06/19 15:32:19 INFO source.NetcatSource: Source starting
12/06/19 15:32:19 INFO source.NetcatSource: Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/127.0.0.1:44444]
12/06/19 15:32:34 INFO sink.LoggerSink: Event: { headers:{} body: 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 0D          Hello world!. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值