Flume的部署与测试
Flume是一个分布式、高可靠、高可用的日志收集系统。能够有效的收集、聚合、移动大量的日志。把各种类型的数据源采集汇总到各种类型的目的地,flume有一个口号:“我们不生产数据,我们是数据的搬运工。
官网文档: http://flume.apache.org/FlumeUserGuide.html
相关项目:
相关示例项目:Leek——简易版实时智能选股平台
Flume组件:
Flume 的核心(agent)就是把数据从数据源收集过来,再送到目的地。为了保证高可靠输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。 Flume : 传输的数据的基本单位是 Event,如果是文本文件,通常是一行记录,这也是事务的基本单位。
- Event : (包含:headers:{} 、body) 从 Source,流向 Channel,再到 Sink,本身为一个 byte 数组。
- Source : 对数据进行收集,分成 transtion 和 event 打入到channel之中。
- Channel : 就像一个管道(队列),接收 Source 的输出,再推送给 Sink 消费。数据直到进入到下一个Channel中或者进入终端才会被删除。即:中转Event临时存储,在 sources 和 sinks之间起一个连接作用 。
- Sink : 取出 Channel 中的数据,然后送给外部源(HDFS、HBase)或者其他 Source。
flume的作用:
可用于实时计算和离线计算的数据源采集工具
1、Flume安装(安装flume前需要先安装JDK环境)
http://mirrors.cnnic.cn/apache/flume/1.6.0/apache-flume-1.6.0-bin.tar.gz
tar -xvzf apache-flume-1.6.0-bin.tar.gz
mv apache-flume-1.6.0-bin apache-flume-1.6.0
2、环境变量设置
vim /etc/profile
export FLUME_HOME=/usr/local/apache-flume-1.6.0
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=.:$PATH::$FLUME_HOME/bin
source /etc/profile
echo $FLUME_HOME
3、Flume配置
cd /usr/local/apache-flume-1.6.0/conf/
cp flume-conf.properties.template flume-conf.properties
vim flume-conf.properties
接下来我们要实现如下目的:
B服务器的nginx访问日志传输到A服务器,A服务器将本服务器上的nginx访问日志和B服务器传输过来的日志一起输出到/tmp/flume文件夹下面。
#服务器A的配置:
#下面的agent1是代理名称
agent1.sources = s1 s2
agent1.channels = c1
agent1.sinks = k1
#配置数据源source
agent1.sources.s1.type = avro
agent1.sources.s1.bind= 0.0.0.0
agent1.sources.s1.port= 44444
agent1.sources.s1.channels= c1
agent1.sources.s2.batchSize=1000
agent1.sources.s2.batchTimeout=1000
agent1.sources.s2.type = exec
agent1.sources.s2.channels = c1
agent1.sources.s2.command = tail -f /usr/local/nginx/logs/access.log
agent1.sources.s2.batchSize=1000
agent1.sources.s2.batchTimeout=1000
# 配置内存 channel
agent1.channels.c1.type = memory
agent1.channels.c1.capacity = 50000
agent1.channels.c1.transactionCapacity = 10000
# 配置 sinks
agent1.sinks.k1.channel = c1
agent1.sinks.k1.type = file_roll
agent1.sinks.k1.sink.directory = /tmp/flume
#默认值为30,即每30秒生成一个文件
#为0时表示只有一个文件存放数据
agent1.sinks.k1.sink.rollInterval = 0
#设置的越大吞吐能力越好,延时也越大
agent1.sinks.k1.sink.batchSize=100
#服务器B的配置:
#下面的agent1是代理名称
agent1.sources = s1
agent1.channels = c1
agent1.sinks = k1
#配置数据源source
agent1.sources.s1.type = exec
agent1.sources.s1.channels = c1
agent1.sources.s1.command = tail -f /usr/local/nginx/logs/access.log
# 配置内存 channel
agent1.channels.c1.type = memory
agent1.channels.c1.capacity = 10000
agent1.channels.c1.transactionCapacity = 10000
# 配置 sinks
# 数据被转换成 Avro Event ,然后发送到指定的服务端口上。
agent1.sinks.k1.channel = c1
agent1.sinks.k1.type = avro
agent1.sinks.k1.hostname = 192.168.xx.xxx
agent1.sinks.k1.port = 44444
agent1.sinks.k1.batch-size=50
4、依次启动服务
cd /usr/local/apache-flume-1.6.0/
nohup flume-ng agent -n agent1 -c conf -f conf/flume-conf.properties &
5、在A服务器上看整合的日志输出
tail -f /tmp/flume/xxxxxx
相关推荐
Flume-ng 在 Windows 环境搭建并测试 + Log4j 日志通过 Flume 输出到 HDFS ...* 日志收集和分析 * 实时数据处理 * 数据仓库和数据湖等 Flume-ng 是一个功能强大且灵活的日志聚合系统,可以满足各种日志管理需求。
实时收集、解析Nginx日志(日志文件在不断地增加),需要较好的处理: * **断点续读**:agent意外挂掉,重启之后从上次处理过的位置继续处理 * **日志滚动**:当rename Nginx日志文件,并reload Nginx的时候,...
2. **Apache Flume**:Flume 是一款高可用、可靠且分布式的数据收集系统,用于聚合、聚合和移动大量日志数据。在这个系统中,Flume负责从各种数据源(如服务器日志、网络流量等)收集实时日志,然后将这些数据传输到...
4. 测试与部署:编译并打包自定义Sink,将其添加到Flume环境的类路径中,最后更新Flume配置,启动Flume服务进行测试和部署。 三、案例分析 参考博客《Flume自定义Sink接入Elasticsearch实践》(链接:...
4. **测试与运行**:最后,通过 Flume 客户端或 Flume Agent 运行配置文件,测试你的自定义 Source 是否能正常工作。 至于 `flume-ng-core5` 这个文件,这可能是 Flume 的核心库,包含 Flume 的基础组件和接口。在...
Flume是一款高可靠、高性能的日志采集、聚合和传输的系统,支持在日志系统中定制各类数据发送方(source)、接收方(sink)和数据通道(channel)。Flume的设计理念是支持分布式、可靠和高可用的数据流收集和处理。 ...
1. **Flume** 是 Apache 开发的一个分布式、可靠且可用于有效收集、聚合和移动大量日志数据的系统。首先,我们需要下载并安装 Flume,确保其依赖于正确的 Java 版本。配置环境变量后,通过运行测试命令验证 Flume ...
Flume 的设计考虑到了海量数据的实时处理需求,能够很好地适应大数据场景下的日志收集任务。 #### Flume 结构概览 每个Flume的逻辑节点由事件产生的source和消耗事件的sink组成。这些节点从sources中拉取数据,...
Apache Flume 是一个分布式、可靠且可用的服务,用于有效地...在实际生产环境中,Flume 可以与更多的节点配合,处理更复杂的日志收集任务,甚至与其他大数据组件如 HDFS、Kafka 等集成,实现大规模的数据流动和处理。
在实际应用中,Flume常用于日志收集,例如从多个Web服务器收集访问日志,然后将这些日志数据存储在HDFS上进行后续分析。此外,它还可以与其他大数据组件如Spark或HBase结合,实现实时数据分析和处理。 总结来说,...
Apache Flume作为一款高效、可靠且灵活的数据收集系统,广泛应用于日志聚合、监控数据流等场景。而Maven作为Java项目的构建工具,简化了依赖管理和构建过程。当这两者结合时,Flume-Plugin-Maven-Plugin便应运而生,...
Flume 是 Apache Hadoop 生态系统中的一个分布式、可靠且可用于有效收集、聚合和移动大量日志数据的工具。在1.8版本中,它提供了更稳定和优化的数据...这对于提升大数据处理能力,优化日志收集和分析流程具有重要意义。
Apache Flume是一款高度可配置的数据收集系统,广泛应用于日志聚合、数据传输和大数据收集场景。Flume NG是其新版本,相比旧版(Flume Classic)提供了更灵活的架构和更丰富的功能。 Flume NG SDK包含了Flume的开发...
Apache Flume 是一个高度可配置、可靠且分布式的数据采集系统,常用于收集、聚合和移动大量日志数据。它设计的目标是将数据流从多个源有效地传输到一个或多个目标,例如 HDFS(Hadoop 分布式文件系统)或任何其他...
Apache Flume 是一个分布式、可靠且可用的服务,用于有效地收集、聚合和移动大量日志数据。它是Apache Hadoop生态系统中的重要组件,专为处理和传输大规模流式数据而设计。在深入探讨`apache-flume-1.8.0-src.tar.gz...
1. Apache Flume:Flume 是一款高可用、高可靠的分布式日志收集系统。在本项目中,它主要负责从各种数据源(如Web服务器、应用程序日志)收集数据,并将数据传输到Kafka队列。Flume通过其灵活的数据源、通道和接收器...
8. 持续集成与持续部署(CI/CD):通过自动化工具实现代码版本控制、测试、部署,确保系统的稳定性和可维护性。 在实施过程中,可能面临如数据量巨大、日志格式各异、实时性要求高等挑战,因此需要不断优化算法、...