Flume简介与使用(一)

Flume简介

  Flume是一个分布式的、可靠的、实用的服务——从不同的数据源高效的采集、整合、移动海量数据。

  

  分布式:可以多台机器同时运行采集数据,不同Agent的之前通过网络传输数据

  可靠的:Flume会将采集的数据缓存在Channel里,当Sink确认数据被接收了后才会从Channel里删除

  实用的:Flume的使用是非常简单可用的,易于扩展,只需要修改配置文件的选项,就可以定制不同的Source、Channel、Sink,这得益于其精妙的设计

  Agent是Flume的一个JVM进程,其中包含Source、Channel、Sink三个组件,要采集的数据经过定制化的Source缓存到Channel,Channel是一个队列,Source向里面插入数据,Sink从里面取数据,当Sink确认数据被下一跳Agent或者DB等接收后会将数据从Channel删除。

  Flume最巧妙的地方就是其模块化的设计。在实际的应用中要采集的数据可能会来自同的数据源,可以是命令的屏幕输出、应用程序的日志、网络流量等等,用户可以定制不同的Source来分别采集。同样也可以根据不同需求定制自己的Channel和Sink。下表是Flume1.6.0支持的部分组件类型

Source类型  说明
Avro Source 支持Avro协议(实际上是Avro RPC),内置支持
Thrift Source 支持Thrift协议,内置支持
Exec Source 基于Unix的command在标准输出上生产数据
JMS Source 从JMS系统(消息、主题)中读取数据,ActiveMQ已经测试过
Spooling Directory Source 监控指定目录内数据变更
Twitter 1% firehose Source 通过API持续下载Twitter数据,试验性质
Netcat Source 监控某个端口,将流经端口的每一个文本行数据作为Event输入
Sequence Generator Source 序列生成器数据源,生产序列数据
Syslog Sources 读取syslog数据,产生Event,支持UDP和TCP两种协议
HTTP Source 基于HTTP POST或GET方式的数据源,支持JSON、BLOB表示形式
Legacy Sources 兼容老的Flume OG中Source(0.9.x版本)
Channel类型  说明
Memory Channel Event数据存储在内存中
JDBC Channel Event数据存储在持久化存储中,当前Flume Channel内置支持Derby
File Channel Event数据存储在磁盘文件中
Spillable Memory Channel Event数据存储在内存中和磁盘上,当内存队列满了,会持久化到磁盘文件(当前试验性的,不建议生产环境使用)
Pseudo Transaction Channel 测试用途
Custom Channel 自定义Channel实现
Sink类型  说明
Kafka Sink 把数据写入Kafka topic
Hive Sink 把数据写入Hive数据库或分区
HDFS Sink 数据写入HDFS
Logger Sink 数据写入日志文件
Avro Sink 数据被转换成Avro Event,然后发送到配置的RPC端口上
Thrift Sink 数据被转换成Thrift Event,然后发送到配置的RPC端口上
IRC Sink 数据在IRC上进行回放
File Roll Sink 存储数据到本地文件系统
Null Sink 丢弃到所有数据
HBase Sink 数据写入HBase数据库
Morphline Solr Sink 数据发送到Solr搜索服务器(集群)
ElasticSearch Sink 数据发送到Elastic Search搜索服务器(集群)
Kite Dataset Sink 写数据到Kite Dataset,试验性质的
Custom Sink 自定义Sink实现


Flume安装

  这篇先介绍如何安装Flume,以及如何设置配置文件,后面再介绍如何编程采集日志。

  一、Flume1.6.0版本求JVM1.6及以上版本,安装好JDK(自带JVM)后,去Flume官网下载二进制格式的压缩包并解压。

  二、进入conf目录下:cp flume-conf.properties.template myFlumeConf.properties

  三、根据自己需要修改里面的配置,官网上有很多配置的定义

    配置好的属性文件跟下面的类似:

  四、启动Flume

    在Flume目录下运行:

    bin/flume-ng agent --conf conf --conf-file conf/trafficXXX.properties --name agent1 -Dflume.root.logger=INFO,console

    其中--conf指定配置文件路径,--conf-file指定配置文件,--name指定配置文件里的要启动agent名字(一个配置文件里可以有多个agent的定义),-Dflume.root.logger指定Flume运行时输出的日志的级别和地方。

时间: 2024-11-23 07:15:10

Flume简介与使用(一)的相关文章

Flume简介与使用(二)——Thrift Source采集数据

Flume简介与使用(二)——Thrift Source采集数据 继上一篇安装Flume后,本篇将介绍如何使用Thrift Source采集数据. Thrift是Google开发的用于跨语言RPC通信,它拥有功能强大的软件堆栈和代码生成引擎,允许定义一个简单的IDL文件来生成不同语言的代码,服务器端和客户端通过共享这个IDL文件来构建来完成通信. Flume的Thrift Source是其实现的众多Source中的一个,Flume已经实现了服务器端,因此我们可以用任意自己熟悉的语言编写自己的Th

Flume简介与使用(三)——Kafka Sink消费数据之Kafka安装

前面已经介绍了如何利用Thrift Source生产数据,今天介绍如何用Kafka Sink消费数据. 其实之前已经在Flume配置文件里设置了用Kafka Sink消费数据 agent1.sinks.kafkaSink.type = org.apache.flume.sink.kafka.KafkaSink agent1.sinks.kafkaSink.topic = TRAFFIC_LOG agent1.sinks.kafkaSink.brokerList = 10.208.129.3:90

flume简介与监听文件目录并sink至hdfs实战

场景 1. flume是什么 1.1 背景 flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera.但随着 FLume 功能的扩展,Flume OG 代码工程臃肿.核心组件设计不合理.核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 1

日志收集系统Flume调研笔记第1篇 - Flume简介

用户行为数据的收集无疑是构建推荐系统的先决条件,而Apache基金会下的Flume项目正是为分布式的日志收集量身打造的,本文是Flume调研笔记的第1篇,主要介绍Flume的基本架构,下篇笔记将会以实例说明Flume的部署和使用步骤. 本文所用的Flume版本为目前最新版的ver1.5.2,它属于Flume-NG,在系统架构上与Flume-OG有所区别,二者的不同可以参考FlumeWiki文档的说明. 1. Flume是什么 Flume是Apache基金会下的一个开源项目,它实现了一套分布式的.

Flume简介

摘自:https://flume.apache.org/FlumeUserGuide.html 是什么: Flume是一个用来收集聚合海量多来源日志数据并转移到一个数据存储中心的分布式,可依赖,高可用,高性能服务框架.他基于流数据提供简单灵活的架构.具有健壮性,容错性.他提供了一个简单可扩展的数据模型来支持在线分析应用. Flume的数据流模型: 一个 Flume代理由源(数据收集器).通道(数据暂存区).水槽(数据转发器)构成,外部数据源以一种目标Flume源能识别的格式将事件传输到Flume

flume简介(一)

绪论: 本文的内容包括flume的背景.数据流模型.常见的数据流操作.flume agent启动和flume agent简单实例.参考文档为flume官网的flume1.8.0 FlumeUserGuide. 一.背景 flume是由cloudera软件公司产出的可分布式日志收集系统,2009年被捐赠给apache软件基金会,目前是apache的一个顶级项目. flume是一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,值得注意的是,由于传输的数据是可定制的,因此flume不仅可

(01)Flume简介

1.Flume简单介绍 Apache Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力. 2.Flume体系结构 工作流程: (1)外部数据源(web server)将Flume可识别的Event发送到Source; (2)Source收到Event后存储到一个或多个Channel中; (3)Channel保留E

HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统

一.HAProxy简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理. HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. 二.Keepalived简介 它是一个基于VRRP协议来实现的WEB服务高可用方案,

日志系统之Flume日志收集

最近接手维护一个日志系统,它用于对应用服务器上的日志进行收集然后提供实时分析.处理并最后将日志存储到目标存储引擎.针对这三个环节,业界已经有一套组件来应对各自的需求需求,它们是flume+kafka+hdfs/hbase.我们在实时分析.存储这两个环节,选择跟业界的实践相同,但agent是团队自己写的,出于对多种数据源的扩展需求以及原来收集日志的方式存在的一些不足,于是调研了一下flume的agent.结果是flume非常契合我们的实际需求,并且拥有良好的扩展性与稳定性.于是打算采用flume的