如何使用 HTTP 源设置 Apache Flume 并使用 File_Roll Sink 在本地保存数据

问题描述

这个问题的目标是如何创建一个 Apache Flume 设置,我们将从 HTTP Flume Source 获取数据并使用 File-Roll Flume Sink 保存该数据。这里我们从用户那里获取了输入数据。收到用户的数据后,我们会将数据保存在一个文本文件中。

解决方法

此配置文件用于配置 Flume 服务。 Flume 服务使用此文件运行 HTTP 并将信息保存在文件中。

Http_Source.conf

# Base Config
a1.sources=r1
a1.sinks=k1
a1.channels=c1

# Configure the source
a1.sources.r1.type=http
#a1.sources.r1.bind=localhost
a1.sources.r1.port=8888

# Sink Configuration
a1.sinks.k1.type=file_roll
a1.sinks.k1.sink.rollInterval=60
a1.sinks.k1.sink.directory=/home/flumedata/

# Channel configuration
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000

# Link stuff together
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1

现在使用这个命令来运行 Flume 服务。

./bin/flume-ng agent --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/nc_source.conf --name a1 -Dflume.root.logger=INFO,console

现在flume服务启动后,客户端向flume发送数据...

curl --location --request POST 'http://localhost:8888' \
--header 'Content-Type: application/json' \
--data-raw '[{"body": "type here data to send flume"}]'

在配置文件(/home/flumedata/)中提到的位置创建数据文件。

欲知完整详情:https://www.cloudduggu.com/flume/project01/