文档章节

flume-ng学习

Yulong_
 Yulong_
发布于 2017/04/04 22:12
字数 1141
阅读 38
收藏 0

简介

Flume简要来说是,是分布式实时数据采集系统,能够监控多种数据来源,然后传输给多种数据目标。常用的数据来源有日志文件、Socket、Kafka等;常见的数据目标有HDFS、Hbase、文件、Kafka、Logger等。

Flume是Cloudera提供的一个高可用的,高可靠的,、聚合和传输的实时数据采集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进分布式的海量日志采集行简单处理,并写到各种数据接受方(可定制)的能力。

当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。

架构

flume agent

输入图片说明

Flume Event(事件)被定义为具有字节有效载荷和可选的一组字符串属性的数据流的单元。

Flume Agent(代理)是一个(JVM)进程,它承载事件从外部源传递到下一个目标(跳转)的组件。当采集某一个数据源的数据时,需要启动的一个flume-ng进程也就是一个flume agent。 每一个flume agent承载了一个flume event的处理任务。Agent包含三种组件(Source、Channel、Sink),让events从一个外部数据源流向下一个数据标地(消息队列、数据中心、文件系统等).

Flume Source:消费一定格式(avro、tcp、文本等)的外部数据入Flume;(flume接入)
Flume Channel:暂存event,等Flume Sink消费;(flume暂存)
Flume Sink:将event从Flume Channel移出,并输出给外部数据目标(Kafka、Hdfs等);(flume输出)

Consolidation

为了将数据流过多个flume agent中跳转,可以在前一个agent的sink和后一个agent的source之间使用avro类型进行连接,sink指向source的主机名(或IP地址)和端口。

输入图片说明

日志收集中一个非常常见的情况是大量日志客户端,向连接到存储子系统的几个消费者代理发送数据。 例如,从数百个Web服务器收集的日志发送到写入HDFS群集的十几个代理。

输入图片说明

输入图片说明

配置文件

  • 参数--conf 指定的是通用配置,包括日志配置、环境变量、JVM参数等。
  • 参数--conf-file 指定的是针对某一个flume event独立的配置文件。下面是两个例子以及对应不同的配置文件。

下图是一个flume event特定的配置文件示例 输入图片说明

flume agent示例

从本地采集数据写入HDFS

conf-file配置

[training@ localhost flume]$ cat stubs/spooldir.conf 
# spooldir.conf: A Spooling Directory Source
agent1.sources = webserver-log-source
agent1.sinks = hdfs-sink
agent1.channels = memory-channel
#webserver-log-source
agent1.sources.webserver-log-source.type=spooldir
agent1.sources.webserver-log-source.spoolDir=/flume/weblogs_spooldir
agent1.sources.webserver-log-source.channels=memory-channel
#hdfs-sink
agent1.sinks.hdfs-sink.type=hdfs
agent1.sinks.hdfs-sink.hdfs.path=/loudacre/weblogs
agent1.sinks.hdfs-sink.channel=memory-channel
agent1.sinks.hdfs-sink.hdfs.rollInterval = 0
agent1.sinks.hdfs-sink.hdfs.rollSize = 524288
agent1.sinks.hdfs-sink.hdfs.rollCount = 0
agent1.sinks.hdfs-sink.hdfs.fileType = DataStream
#memory-channel
agent1.channels.memory-channel.type=memory
agent1.channels.memory-channel.capacity=10000
agent1.channels.memory-channel.transactionCapacity=10000

flume-ng启动命令

[training@ localhost  flume]$ flume-ng agent --conf /etc/flume-ng/conf --conf-file spooldir.conf --name agent1 -Dflume.root.logger=INFO,console

##使用netcat监控端口socket然后使用logger打印

conf-file配置

[training@ localhost  flume]]$ cat stubs/bonus_netcat.conf 
# bonus_netcat.conf: A netcat source
agent1.sources=netcat-source
agent1.sinks=logger-sink
agent1.channels=memory-channel
#netcat-source
agent1.sources.netcat-source.type=netcat
agent1.sources.netcat-source.bind = localhost
agent1.sources.netcat-source.port = 12345
agent1.sources.netcat-source.channels = memory-channel
#logger-sink
agent1.sinks.logger-sink.type = logger
agent1.sinks.logger-sink.channel = memory-channel
#memory-channel
agent1.channels.memory-channel.type = memory

flume-ng启动命令

[training@ localhost flume]$ flume-ng agent --conf /etc/flume-ng/conf --conf-file bonus_netcat.conf --name agent1 -Dflume.root.logger=INFO,console

flume-ng help

[training@ localhost  flume]$ flume-ng help
Usage: /usr/lib/flume-ng/bin/flume-ng <command> [options]...

commands:
  help                      display this help text
  agent                     run a Flume agent
  avro-client               run an avro Flume client
  version                   show Flume version info

global options:
  --conf,-c <conf>          use configs in <conf> directory
  --classpath,-C <cp>       append to the classpath
  --dryrun,-d               do not actually start Flume, just print the command
  --plugins-path <dirs>     colon-separated list of plugins.d directories. See the
                            plugins.d section in the user guide for more details.
                            Default: $FLUME_HOME/plugins.d
  -Dproperty=value          sets a Java system property value
  -Xproperty=value          sets a Java -X option

agent options:
  --name,-n <name>          the name of this agent (required)
  --conf-file,-f <file>     specify a config file (required if -z missing)
  --zkConnString,-z <str>   specify the ZooKeeper connection to use (required if -f missing)
  --zkBasePath,-p <path>    specify the base path in ZooKeeper for agent configs
  --no-reload-conf          do not reload config file if changed
  --help,-h                 display help text

avro-client options:
  --rpcProps,-P <file>   RPC client properties file with server connection params
  --host,-H <host>       hostname to which events will be sent
  --port,-p <port>       port of the avro source
  --dirname <dir>        directory to stream to avro source
  --filename,-F <file>   text file to stream to avro source (default: std input)
  --headerFile,-R <file> File containing event headers as key/value pairs on each new line
  --help,-h              display help text

  Either --rpcProps or both --host and --port must be specified.

Note that if <conf> directory is specified, then it is always included first
in the classpath.

© 著作权归作者所有

下一篇: CompleteBulkLoad
Yulong_
粉丝 10
博文 145
码字总数 253510
作品 0
朝阳
部门经理
私信 提问
flume 1.7 源码导入eclipse windows

安装maven,设置MAVEN_HOME等配置 下载flume源码 eclipse-oxygen,设置eclipse 使用外部maven,并配置settings.xml 遇到问题: 如果顺利,已将所需jar都下载下来了。 导入后遇到如下问题 fl...

柯里昂
2017/10/31
93
0
Flume OG和Flume NG的区别

应用场景 Flume作为Hadoop中的日志采集工具,非常的好用,但是在安装Flume的时候,查阅很多资料,发现形形色色,有的说安装Flume很简单,有的说安装Flume很复杂,需要依赖zookeeper,所以一方...

wsc449
2017/11/23
0
0
【Flume】- 收集 Log4j 日志上送Kafka

Flume 收集 Log4j 日志上送Kafka存储 --- 环境准备 下载Flume: http://flume.apache.org/ 安装: 解压下载包到自定义路径 配置agent 解释: sources: avro 用于接收Log4j日志 interceptors: ...

ZeroneLove
04/10
23
0
Flume NG 简介及配置实战

Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,...

大数据之路
2014/07/08
55.8K
9
log4j直接输出日志到flume

log4j直接输出日志到flume 此jar是由Cloudera的CDH发行版提供的一个工具类,通过配置,可以将log4j的日志直接输出到flume,方便日志的采集。 在CDH5.3.0版本中是:flume-ng-log4jappender-1....

cloud-coder
2015/07/06
12.4K
4

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
43
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部