Flume入门样例

Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 10 月 22 号,cloudera 完成了 Flume-728,对 Flume 进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume。

http://flume.apache.org/index.html

(上述图片来自官网文档)

Flume的一些核心概念:

Agent 使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。
Client 生产数据,运行在一个独立的线程。
Source 从Client收集数据,传递给Channel。
Sink 从Channel收集数据,运行在一个独立线程。
Channel 连接 sources 和 sinks ,这个有点像一个队列。
Events 可以是日志记录、 avro 对象等。

Flume具有高可扩展性 可随意组合:
注意 source是接收源 sink是发送源

下载-解压-修改/etc/profile

Example:文件追加内容作为消息输入

EXEC执行一个给定的命令获得输出的源,如果要使用tail命令,必选使得file足够大才能看到输出内容

1. 创建配置文件vi example.conf

a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.channels = c1
a1.sources.r1.command = tail -F ~/test/log_exec_tail

# 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

2. 启动flume agent

flume-ng agent -c conf  -f ~/test/example.conf --name a1 -Dflume.root.logger=INFO,console

3.对文件进行追加

for i in {1..100};
    do echo "exec tail$i" >> ~/test/log_exec_tail;
done

4.在启动flume agent的控制台就可以看到追加的信息陆续出现了

更多如入类型参见:http://www.aboutyun.com/thread-8917-1-1.html

时间: 2024-08-28 03:39:19

Flume入门样例的相关文章

Spring Boot入门样例-001-Java和Maven安装配置

Spring Boot入门样例-001-Java和Maven安装配置 本文说明Java和Maven在windows下的安装和配置 前言 本Spring Boot入门样例准备工作参考: Spring Boot入门样例-001-Java和Maven安装配置 Spring Boot入门样例-003-idea 安装配置和插件 Spring Boot入门样例-005-如何运行 1. 下载 下载地址:https://www.oracle.com/technetwork/java/javase/downloa

jbpm入门样例

1.      jBPM的简介 jBPM是JBOSS下的一个开源java工作流项目,该项目提供eclipse插件,基于Hibernate实现数据持久化存储. 參考 http://www.jboss.com/products/jbpm 2.      jBPM和myeclipse的冲突 当eclipse安装了myeclipse和jBPM时候,可能有冲突,详细表如今jBPM的流程设计器不能在eclipse中使用. 3.      Hibernate连接mysql数据库的一般參数 以下的配置參数,依据

Activiti的简单入门样例(经典的请假样例)

经典的请假样例: 流程例如以下,首先须要部门经理审批.假设请假天数大于2天,则须要总经理审批,否则HR审批就可以 一:创建maven项目,项目结构例如以下: 增加依赖 pom.xml <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>5.17.0</version> </depe

图解VC++ opengl环境配置和几个入门样例

VC6下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 demoproject和glut库下载 http://pan.baidu.com/s/1pLSpKiZ 一 环境配置 參阅 http://blog.itpub.net/17267437/viewspace-545635/ 解压glut库 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize

JPA入门样例(採用JPA的hibernate实现版本号)

(1).JPA介绍: JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口.JPA吸取了眼下Java持久化技术的长处,旨在规范.简化Java对象的持久化工作.使用JPA持久化对象,并非依赖于某一个ORM框架.      为什么要使用JAP?      在说为什么要使用JPA之前,我们有必要了解为什么要使用ORM技术. ORM 是Object-Relation-Mapping,即对象关系影射技术,是对象持久化的核

Direct3D 9 入门样例程序 圆锥体

介绍 Directx3D 9 什么是DirectX,非常好说了,Win32 C++ API.主要是多媒体编程方面的,长处体如今高性能了,如今我知道的版本号最高是D3D11,可是我是学习入门的,从D3D9開始,不算非常是落伍. Directx3D 元素 D3D元素非常多,这里说的元素是程序中用到的元素. 1〉D3D 编程的起点.能够理解成出所用的D3D SDK程序集. 2〉D3D present parameter .呈现參数,专业的參数是通过一顿检測配置成最好的.程序中的參数简单的用默认的显示參

drools6入门样例(二)

产品规则例如以下: 1:单个产品数量超过2个,该产品打9折 2:总价格超过1000,立减50 新建maven项目.增加drools的依赖 <dependency> <groupId>org.drools</groupId> <artifactId>drools-core</artifactId> <version>6.2.0.Final</version> </dependency> <dependenc

Android中关于JNI 的学习(零)简单的样例,简单地入门

Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,Java去调用C/C++的代码事实上就是去调用C/C++提供的方法.所以,第一步,我们要创建一个类,而且定义一个Native方法.例如以下: JniTest类: public class JniTest { public native String getTestString(); } 能够看到,在这

Nginx基础入门之相关配置模板样例参考

关于nginx,在不同的环境下有不同的配置,比如nginx在LNMP环境中有lamp 环境的配置,从到反向代理时,有反向代理的配置,在做负载均衡时,有负载均衡的配置,下面我们来介绍一下关于nginx不同应用环境的配置样例 通常在配置nginx时,我习惯将nginx配置分为nginx分为两大部分:1.共用nginx配置:2.include引用的web配置,如下所示 * 共用nginx配置模板参考 #user  nobody; user nginx ;   worker_processes  aut