下载
官网下载:
https://flume.apache.org/download.html
安装
基本上不需要做什么配置,下载后解压即可使用!!
下载安装包:apache-flume-1.11.0-bin .tar.gz
上传至 linux 的 /opt/ 目录下
解压至 /opt/apps(可以自定义目录)
修改简短名称(方便配置)
配置环境变量(方便调用)
解压安装
[zhang@node2 flume]$ cd /opt # 切换到 /opt 目录下
[zhang@node2 opt]$ ll # 列出当前目录下文件,确认已经存在
total 885452
-rw-r--r--. 1 zhang zhang 87380462 Apr 12 22:44 apache-flume-1.11.0-bin_.tar.gz
# 解压到 apps 下
[zhang@node2 opt]$ tar -zxvf apache-flume-1.11.0-bin_.tar.gz -C apps
# 解压完成后,进入apps目录
[zhang@node2 opt]$ cd apps
# 修改为简短的名字
[zhang@node2 apps]$ mv apache-flume-1.11.0-bin/ flume
[zhang@node2 apps]$ ll
total 0
drwxrwxr-x. 7 zhang zhang 187 Apr 13 14:17 flume
# 进入 flume 目录
[zhang@node2 apps]$ cd flume/
# 列出 flume 目录下的文件
[zhang@node2 flume]$ ll
total 244
drwxr-xr-x. 2 zhang zhang 62 Apr 13 14:17 bin
-rw-r--r--. 1 zhang zhang 89032 Oct 17 2022 CHANGELOG
drwxr-xr-x. 2 zhang zhang 121 Apr 13 14:17 conf
-rw-r--r--. 1 zhang zhang 5681 Jan 21 2022 DEVNOTES
-rw-r--r--. 1 zhang zhang 2873 Jan 21 2022 doap_Flume.rdf
drwxr-xr-x. 5 zhang zhang 4096 Oct 17 2022 docs
drwxrwxr-x. 2 zhang zhang 8192 Apr 13 14:17 lib
-rw-r--r--. 1 zhang zhang 108909 Oct 17 2022 LICENSE
-rw-r--r--. 1 zhang zhang 8832 Oct 17 2022 NOTICE
-rw-r--r--. 1 zhang zhang 2483 Jan 21 2022 README.md
-rw-r--r--. 1 zhang zhang 1590 Oct 10 2022 RELEASE-NOTES
drwxrwxr-x. 2 zhang zhang 69 Apr 13 14:17 tools
配置环境变量
配置环境变量是为了方便操作 flume 命令
配置方式可以 /etc/profile 全局变量 或 ~/.bashrc 当前用户有效
编辑 .bashrc 文件
# 编辑当前用户环境变量 添加 FLUME_HOME 和 path 中 增加 flume的 bin 目录
[zhang@node2 conf]$ vim ~/.bashrc
# 添加 flume 配置之后的 内容如下
JAVA_HOME=/opt/apps/jdk1.8.0_281
HADOOP_HOME=/opt/apps/hadoop-3.2.4
HIVE_HOME=/opt/apps/hive3.1
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
FLUME_HOME=/opt/apps/flume
PATH=~/mybin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLUME_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_CLASSPATH=$(hadoop classpath)
export JAVA_HOME HADOOP_HOME CLASSPATH PATH
# 修改立即起效
[zhang@node2 conf]$ source ~/.bashrc
# 查看 flume 版本
[zhang@node2 flume]$ flume-ng version
Flume 1.11.0
Source code repository: https://git.apache.org/repos/asf/flume.git
Revision: 1a15927e594fd0d05a59d804b90a9c31ec93f5e1
Compiled by rgoers on Sun Oct 16 14:44:15 MST 2022
From source with checksum bbbca682177262aac3a89defde369a37
安装配置完成后,接下来通过几个案例来学习 flume 的使用,同时验证 flume 是否安装配置成功。
Flume 使用案例
案例一:监听网络端口:
Flume 官网提供了一个简单的案例:
Here, we give an example configuration file, describing a single-node Flume deployment. This configuration lets a user generate events and subsequently logs them to the console.
在这里,我们给出一个示例配置文件,描述单节点Flume部署。此配置允许用户生成事件并随后将其记录到控制台。
需求:监听指定 IP 上的某端口通信数据抓取
配置
新建配置文件 netcat.conf , 输入如下内容:
# 命名此 agent 上的组件
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 配置 source 组件
# 指定 source 组件类型为 netcat
a1.sources.r1.type = netcat
# 绑定主机
a1.sources.r1.bind = node1
# 绑定端口
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
在这个配置中:
a1
是 Flume Agent 的名称。r1
是 Source 的名称,其类型被设置为netcat
。netcat
Source 允许 Flume 从一个网络连接接收数据。这种配置适用于那些希望通过网络接口(如 TCP 或 UDP)向 Flume 发送数据的应用程序或工具。bind
属性指定了 Source 应监听的主机地址。这里设置为localhost
,表示仅接受来自本地主机的连接。您可以将其替换为具体的 IP 地址(如0.0.0.0
表示监听所有网络接口)。port
属性指定了 Source 应监听的端口号,这里是44444
。发送方需要使用这个端口来连接并发送数据到 Flume Agent。- logger
表示您正在设置一个名为
k1的 Flume 数据接收端(Sink),类型为
logger。
logger` Sink 是一种非常简单的调试工具,它将从