flume


Flume:
    ** Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、传输、聚合的系统。
    ** Flume仅仅运行在linux环境下
    ** flume.apache.org(Documentation--Flume User Guide)

Flume体系结构(Architecture):(见图)
Source: 用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel
Channel:连接 source 和 sink的数据传输通道
Sink:     从Channel收集数据,将数据写到目标源,可以是下一个Source也可以是HDFS或者HBase

数据种类:
    ** 系统(通常指web应用)产生的的日志,(能被flume够实时捕获)
    ** 系统中自定义方法、命令产生的数据,(也能被flume够实时捕获)

获取数据的方式
    ** 传统方式:
       脚本+命令 ==>【周期性】上传数据到HDFS,然后进行分析
       如:load data local inpath ...
       缺点:繁琐、效率低、容易遗漏
    ** 采用flume框架
       优点:简单、高效、实时性捕获


----flume安装-----------------------------

1、解压(建议安装到cdh目录里)
tar zxf /opt/softwares/flume-ng-1.5.0-cdh5.3.6.tar.gz
2、改名,并修改flume-env.sh
$ mv flume-env.sh.template flume-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_67

3、使用flume-ng命令
$ bin/flume-ng
--conf         指定配置目录
--name         指定Agent的名称
--conf-file    指定具体的配置文件

====案例1===========================================================

需求:使用flume监控某个端口,把从端口写入的数据输出为logger

1、复制
[lxl@lxl01 apache-flume-1.5.0-cdh5.3.6-bin]$ cd conf/
$ cp -a flume-conf.properties.template flume-telnet.conf

2、修改flume-telnet.conf
24行以下全删了,然后复制下面内容进去
# Name the components on this agent
# a1为代理(中介)实例名,任意命名,agent分三部分
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
# netcat是用于调试和检查网络的工具包,windows和linux(redhat)均可用,需要安装
a1.sources.r1.type = netcat    
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
# 可以在文档Flume Sinks--Logger Sink部分查找
# 往日志文件里面写
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
# 内存channel
a1.channels.c1.type = memory
# channel里存放的最大event数
a1.channels.c1.capacity = 1000
# 每个事务支持的最大event数
a1.channels.c1.transactionCapacity = 100

# 绑定source和sink到channel
# 注意:这里有's'
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

*** 配置文件的使用:
a) 命名
b) 配置source、sink、channel
c) 关联

---------------------

测试:
*** 安装telnet
$ su -
# yum -y install telnet

*** 启动flume,'-D'设置日志级别和输出源
$ bin/flume-ng agent --conf conf/ --name a1 --conf-file conf/flume-telnet.conf -Dflume.root.logger=INFO,console

*** 打开另外一个窗口
$ netstat -an|grep 44444    --检查是否有程序(flume)在监听44444端口
$ telnet localhost 44444    --连接本机的44444端口&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值