超级简单入门,日志管理系统Flume1.8.0的安装和配置和启动
Flume简介
Flume原是Cloudera公司提供的一个高可用的、高可靠的、分布式海量日志采集、聚合和传输系统,而后纳入到了Apache旗下,作为一个*开源项目。Apache Flume不仅只限于日志数据的采集,由于Flume采集的数据源是可定制的,因此Flume还可用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息以及几乎任何可能的数据源。
准备工作
- Linux操作系统
- flume8.0安装包(见文末或者官网下载)
Flume运行机制
Flume的核心是把数据从数据源(例如Web服务器)通过数据采集器(Source)收集过来,再将收集的数据通过缓冲通道(Channel)汇集到指定的接收器(Sink)。
Flume基本架构中有一个Agent(代理),它是Flume的核心角色,Flume Agent是一个JVM进程,它承载着数据从外部源流向下一个目标的三个核心组件:Source、Channel和Sink。
- Flume分布式系统中最***核心的角色是agent***,flume采集系统就是由一个个agent所连接起来形成
-
每一个agent相当于一个数据传递员,内部有三个组件:
-
- Source:采集源,用于跟数据源对接,以获取数据
- Sink:下沉地,采集数据的传送目的,用于往下一级agent传递数据或者往最终存储系统传递数据
- Channel:angent内部的数据传输通道,用于从source将数据传递到sink
-
Flume日志采集系统架构
实际开发中, Flume需要采集数据的类型多种多样,同时还会进行不同的中间操作,所以根据具体需求,可以将Flume日志采集系统分为简单结构和复杂结构。
简单的Flume日志采集系统的结构
复杂的Flume日志采集系统的结构
Flume系统要求
使用Flume进行开发,必须满足一定的系统要求,这里以官方说明为准,具体要求如下。
-
安装Java 1.8或更高版本Java运行环境;
-
为Source(数据采集器)、Channel(缓冲通道)、Sink(接收器)的配置提供足够的内存空间;
-
为Channel(缓冲通道)、Sink(接收器)的配置提供足够的磁盘空间;
-
保证Agent(代理)对要操作的目录有读写权限.。
Flume安装配置
-
下载 Flume 1.8.0 安装包并解压。
解压到该路径下 /export/servers
-
配置flume-env.sh文件,添加JDK环境变量。
cd ...flume主目录/conf mv flume-env.sh.template flume-env.sh # 在flume-env.sh中添加jdk环境变量 export JAVA_HOME=/export/servers/jdk
-
配置 /etc/profile文件,添加Flume环境变量。
vim /etc/profile # 添加如下 export FLUME_HOME=/export/servers/flume export PATH=$PATH:$FLUME_HOME/bin: # 使其生效 source /etc/profile
Flume入门使用
使用Flume系统,只需要创建一个配置文件,用来配置Flume Source、Flume Channel和Flume Sink三大组件的属性即可。
例如编写一个采集netcat源数据的采集方案 netcat-logger.conf
# cd /export/servers/flume/conf
# vi netcat-logger.conf
# 定义这个agent中各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 描述和配置source组件:r1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# 描述和配置sink组件:k1
a1.sinks.k1.type = logger
# 描述和配置channel组件,此处使用是内存缓存的方式 1000个event
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 描述和配置source channel sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
然后输入启动Flume指令,具体效果如下。
# 启动flume(在flume主目录下启动,因为紧接的是相对路径)
$ flume/flume-ng agent --conf conf --conf-file conf/netcat-logger.conf --name a1 -Dflume.root.logger=INFO,console
启动Flume程序后,在CRT或者Xshell工具中克隆会话窗口,启动telnet 工具
# 使用telnet工具连接flume
$ telnet localhost 44444
# 发送 hello world
数据发送完毕后,返回Flume程序,观察采集到的数据,具体效果如下所示。
总结
欢迎关注: 搜索公众号或者B站:悟空非空也
安装包资源索取: 搜索公–Z–号:悟空非空也,键盘输入: flume8
若有疑问,欢迎评论区留言,感谢转发、评论、点赞+收藏+投币,一键三连哈
上一篇: 遍历一个文件夹下所有文件和子文件夹的函数
下一篇: redis分布式锁-SETNX实现