spooling directory source
时间: 2023-04-16 11:01:15 浏览: 51
Spooling目录源是指计算机系统中用于存储打印作业的目录。当用户在计算机上发起打印请求时,打印作业会被发送到Spooling目录源中,然后按照顺序进行打印。这种方式可以避免打印机繁忙时的等待,提高打印效率。
相关问题
FLume 实现 Spooling Directory Source抓取文件后自动停止
Flume的Spooling Directory Source是用于监控指定目录并将新的文件内容作为事件发送到Flume流程中的组件。要实现抓取文件后自动停止,可以使用Flume的File Channel组件和Flume的Exec Source组件。
具体实现步骤如下:
1. 配置Spooling Directory Source,将文件内容发送到File Channel中。
```properties
#定义agent
agent.sources = spoolDirSource
agent.channels = fileChannel
agent.sinks = nullSink
#定义source
agent.sources.spoolDirSource.type = spooldir
agent.sources.spoolDirSource.spoolDir = /data/spool
agent.sources.spoolDirSource.fileHeader = true
agent.sources.spoolDirSource.basenameHeader = true
agent.sources.spoolDirSource.batchSize = 1000
agent.sources.spoolDirSource.pollDelay = 10000
agent.sources.spoolDirSource.channels = fileChannel
#定义channel
agent.channels.fileChannel.type = file
agent.channels.fileChannel.checkpointDir = /data/flume/checkpoint
agent.channels.fileChannel.dataDirs = /data/flume/data
agent.channels.fileChannel.capacity = 10000000
agent.channels.fileChannel.transactionCapacity = 1000
#定义sink
agent.sinks.nullSink.type = null
agent.sinks.nullSink.channel = fileChannel
```
2. 配置Exec Source,使用Exec Source来实现自动停止。
```properties
#定义agent
agent.sources = execSource
agent.channels = fileChannel
agent.sinks = nullSink
#定义source
agent.sources.execSource.type = exec
agent.sources.execSource.command = sh /data/stop_flume.sh
agent.sources.execSource.batchSize = 1
agent.sources.execSource.channels = fileChannel
#定义channel
agent.channels.fileChannel.type = file
agent.channels.fileChannel.checkpointDir = /data/flume/checkpoint
agent.channels.fileChannel.dataDirs = /data/flume/data
agent.channels.fileChannel.capacity = 10000000
agent.channels.fileChannel.transactionCapacity = 1000
#定义sink
agent.sinks.nullSink.type = null
agent.sinks.nullSink.channel = fileChannel
```
3. 编写停止脚本stop_flume.sh,当该脚本被执行时,Exec Source会接收到一个事件并停止Flume。
```shell
#!/bin/bash
touch /data/stop_flume
```
4. 在Flume的启动脚本中,添加一个循环来监控停止标志文件的变化情况。当停止标志文件被创建时,停止Flume。
```shell
#!/bin/bash
bin/flume-ng agent -n agent -c conf -f conf/flume-conf.properties &
PID=$!
while [ ! -f /data/stop_flume ]
do
sleep 1
done
kill $PID
```
这样,当停止标志文件被创建时,Exec Source会接收到一个事件并停止Flume。同时,File Channel中的所有事件都会被处理完毕。
32. [单选] 【单选题】 下面关于flume的数据源描述正确的是? A A. NetCat Source:可以将命令产生的输出作为源 B B. Spooling Directory Source 这个Source允许你将文件将要收集的数据放置到"自动搜集"目录中。 C C. HTTP Source此Source接受HTTP的GET和POST请求作为Flume的事件。 D D. vro Source监听AVRO端口来接受来自外部AVRO客户端的事件流。
B 下面关于flume的数据源描述正确的是:Spooling Directory Source:这个Source允许你将文件将要收集的数据放置到"自动搜集"目录中。因此,答案是B。Flume是一个分布式的、可靠的、高可用的海量日志采集、聚合和传输的系统。Flume的数据源用于从各种来源获取数据,例如文件、网络、系统日志等。各种数据源包括NetCat Source、Spooling Directory Source、HTTP Source、Avro Source等。NetCat Source用于将命令产生的输出作为源,HTTP Source接受HTTP的GET和POST请求作为Flume的事件,Avro Source监听AVRO端口来接受来自外部AVRO客户端的事件流。Spooling Directory Source允许你将文件将要收集的数据放置到"自动搜集"目录中,Flume会定期扫描该目录,自动将其中的数据收集和传输。