您的位置:首页 > 其它

flume简介和安装

2017-08-09 10:42 155 查看
【译文】:Flume是一种分布式、可靠和可用的服务,可以有效地收集、聚集和移动大量的日志数据。它有一个基于流数据流的简单而灵活的体系结构。它具有可调可靠性机制和许多故障转移和恢复机制的健壮性和容错能力。它使用一个简单的可扩展的数据模型,允许在线分析应用程序。



flume的核心概念模型如上图。flume在web server和hdfs之间担任代理角色,source端作为输入负责与web server交互监控收集数据,sink端作为输出负责向hdfs写数据。channel作为管道连接source和sink供两者传输数据。

Source常用类型

Avro
Source:


在Avro端口上监听并接收来自外部Avro客户流的事件;属于远程调用的方式



Exec
Source: 


基于linux命令,将该命令的输出作为source

Spooling
Directory Source : 


 
  这个Source将监视指定目录是否有新文件,如果有新文件的话,就解析这个新文件;在文件的内容所有的都读取    到Channel之后,Spooling       Directory Source会重名或者是删除该文件以表示文件已经读取完成。

 
  1.文件在读入spooling目录后不允许再次写;

 
  2.文件不允许重复使用;

Kafka
Source: 一种实时框架


Sink常用类型

Avro Sink

HDFS Sink

Hive Sink

Logger Sink

Kafka Sink

Channels常用类型

Memory: 内存存储

JDBC:数据库存储

Kafka

示例配置

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

# Describe/configure the source:exec source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /var/log/secure

# Describe the sink :hdfs sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S
a1.sinks.k1.hdfs.filePrefix = events-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute

a1.sinks.k1.hdfs.rollInterval = 30
a1.sinks.k1.hdfs.rollSize = 30
a1.sinks.k1.hdfs.rollCount = 30
a1.sinks.k1.hdfs.idleTimeout = 3

# Use a channel which buffers events in memory: memory channels
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 10000
a1.channels.c1.byteCapacityBufferPercentage = 20
a1.channels.c1.byteCapacity = 800000

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1


安装

flume安装很简单,上传压缩包后解压然后修改conf/flume-env.sh中的JAVA_HOME即可。安装成功后最好配置一下flume环境变量;

命令flume-ng version验证安装结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: