第一章 启动 flume
1、flume 基本概要
(1) flume 是做什么的?
flume 是 apach 的开源项目,它主要用来收集数据,即将来源于不同节点的数据汇聚到一个中心节点。(2) 数据在 flume 内部传输过程中是否会丢失数据?
flume 内部支持事务,在数据传输过程中不存在丢失数据的情况,但是有可能重复。(3) flume 宕机,是否会丢失数据?
flume 内部支持两种机制:内存队列和文件队列。内存队列提供了高效,高吞吐量的数据收集,但是当 flume 宕机时,存储在内存队列的数据就会丢失,不能恢复。文件队列提供了低性能,高可靠性的数据收集,当 flume 宕机时,存储在文件队列中的数据是能够恢复的。(4) flume 的健壮性,稳定性如何?
flume 服务基本能达到 99.99%
2、flume 基本组件(source, channel, sink)
根据图1.1简单的介绍一下 flume 内部的系统架构,数据流向,基础组件。
flume 由三个组件来支撑起整个内部系统架构,三个组件分别为 Source, Channel, Sink。其中 Channel 是数据存储器,保存 flume 内部的所有数据; Source 类似于生产者,它接受外部数据,并将数据保存到 Channel;Sink
类似于消费者,从 Channel 中取出数据,并发送到外部。因此 flume 内部的数据流向就是 Web Server —> Source—> Channel —> Sink —> HDFS。用一个我们都熟悉的例子来形象描述 Source, Channel, Sink 的关系:Source 是入水管,Channel 是蓄水池,Sink 是出水管。
3、启动 flume
(1) 去官网下载 flume 包。
官网:http://flume.apache.org/download.htmlflume 包:apache-flume-1.5.2-bin.tar.gz
(2) 解压缩 flume 包。
tar -zxvf apache-flume-1.5.2-bin.tar.gzcd apache-flume-1.5.2-bin
其中 lib 文件中存放的是 jar 包;conf 文件中存放的是配置文件,bin 文件中存放的是执行脚本。
(3) 创建配置文件
conf 文件中存放的配置文件有:flume-conf.properties.template,flume-env.sh.template, log4j.properties。flume-conf.properties.template 该模版是用来配置 Source, Channel, Sink 的属性。
flume-env.sh.template 该模版是用来配置执行环境。[暂不介绍]
从 2 节中已经知道了,flume 内部是由 3 个组件 Source, Channel, Sink 连接起来形成数据流的,因此我们需要使用配置文件来初始化各个组件的属性,以及它们之间的连接方式。
在 conf 目录下创建 flume.conf 文件,文件内容如下。
# example.conf: A single-node Flume configuration # Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 # 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
(4) 启动 flume
启动 flume 的脚本是 bin/flume-ng,执行它,即:bin/flume-ng,会显示该命令的帮助命令。即:Usage: bin/flume-ng <command> [options]…
在这里,我们关注以下几个参数:
commands: agent启动一个 flume agent
global options: --conf, -c <conf> 指定配置文件目录,指的是 conf/目录下的 flume.env,log4j 和 flume.conf。
-Dproperty = value 设置一个 java 系统参数
agent options: --conf-file, -file<file> 设置一个配置文件,即 flume.conf
--name, -n<name> flume agent name
即 bin/flume-ng agent --conf conf --conf-file conf/flume.conf --name a1 -Dflume.root.logger=INFO,console
至此启动完成,会发现 flume 打印出来的 log。
(5) 发送数据
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。