31离线系统辅助工具flume——好程序

1、什么是flume
Apache Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store.

flume是一个高效的高可靠的、高可用的、可扩展的、分布式的海量日志的数据收集、聚合、传输的工具

2、flume的架构

3、flume的组件及作用
client:客户端,运行agent的地方
source:数据源,负责接收数据
channel:管道,负责接收source端的数据,然后将数据推送到sink端
sink:负责从channel端拉取数据,并将其推送到持久化系统。
selector:选择器,作用于source端,然后决定数据发往哪个目标。
interceptor:拦截器,flume允许使用拦截器拦截数据。允许使用拦截器链,作用于source和sink阶段。
event:flume中的事件,相当于一条数据。一条消息
agent:flume的客户端,一个agent运行在一个jvm里,他是flume的最小运行单位。

数据模型
单一数据模型
多数据流模型

4、flume的安装
flume0.9和flume1.x的版本区别
0.9版本叫flume-og,1.x版本叫flume-ng
0.9版本区分逻辑节点和物理节点(集群版),而1.x版本不区分逻辑和物理概念,每一个agent就是一个服务
0.9版本需要master和zookeeper的支持(集群要有一个老大,一个协调服务),而1.x版本不需要
0.9的开发不是很灵活,而1.x版本开发很灵活的,可以支持很多功能的自定义(source、channel、sink、interceptor、selector等)

a、先将安装包拉上来,然后解压到指定目录
b、vi  /etc/profile   编辑一下环境变量    再souce一下
c、vi flume-env.sh  配置一下文件  
 

5、案例 (采集方案)
1、avro + memory + logger
vi /flumeconf/avro-logger.conf
a1.sources=r1
a1.channels=c1
a1.sinks=s1

a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop0001
a1.sources.r1.port = 6666

a1.channels.c1.type=memory

a1.sinks.s1.type = logger

a1.sources.r1.channels = c1
a1.sinks.s1.channel=c1


启动agent:
bin/flume-ng agent -c ./conf -f ./flumeconf/avro-logger.conf -n a1 -Dflume.root.logger=INFO,console
启动是需要一个参数,告诉它启动的是agent。-c 后接指定的配置在哪个目录下。-f指定要使用哪一种方案来采集数据。-n为告诉启动的agent的名字是什么。因为是测试可以将内容打印到控制台,所以-Dflume...指定日记的输出位置

测试:(发送数据要告诉发送到那台机器的哪个端口,所以有-H)
flume-ng avro-client -c /usr/local/flume-1.6.0/conf/ -H hadoop0001 -p 6666 -F ./test.dat 


架构

如何实现数据不丢失或者不重复消费
拦截器
source  10000
sink    8000
zookeeper

hbase

实战案例

注意监听目录的时候,可以往目录里面去copy,不能针对目录里面的文件去写日记,数据的文件

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值