关于flume:Flume组件部署

12次阅读

共计 2316 个字符,预计需要花费 6 分钟才能阅读完成。

一、原理

1.Linux 环境 Flume 装置配置及应用
2.Apache Flume 入门教程
3.flume 的部署和 avro source 测试;netcast source 测试
4.Flume 部署及应用
5.Flume 监听本地 Linux-hive 日志文件采集到 HDFS

1.Flume 组件

  1. Flume 的作用: 可用于实时计算和离线计算的数据源采集工具。
  2. Flume 的外围(agent)就是把数据从数据源收集过去,再送到目的地。为了保障高牢靠输送肯定胜利,
    在送到目的地之前,会先缓存数据,待数据真正达到目的地后,删除本人缓存的数据。
  3. Flume : 传输的数据的根本单位是 Event,如果是文本文件,通常是一行记录,这也是事务的根本单位。
  • Event :(蕴含:headers:{}、body)从 Source,流向 Channel,再到 Sink,自身为一个 byte 数组,在
    flume 中应用事件作为传输的根本单元。
  • Source : 数据源,用户从数据发生器采集接收数据,source 产生数据流,同时会把产生的数据流以 Flume 的
    event 格局传输到一个或者多个 channel。
  • Channel : 就像一个管道 (队列),接管 Source 的输入,再推送给 Sink 生产。数据直到进入到下一个 Channel 中
    或者进入终端才会被删除。即: 直达 Event 长期存储,在 sources 和 sinks 之间起一个连贯作用。Channel 是一
    个残缺的事务,这一点保障了数据在收发的时候的一致性. 并且它能够和任意数量的 source 和 sink 链接。
  • Sink : 下沉,取出 Channel 中的数据,而后送给内部源(HDFS、HBase)或者其余 Source。

2. 装置与配置

(1).Flume 前提环境

java 环境

(2). 解压 apache-flume-1.6.0-bin.tar.gz 安装包到目标目录下

# 解压
tar -zxvf apache-flume-1.6.0-bin.tar.gz.tar.gz -C /usr/local
# 更改名字
cd /usr/local
mv apache-flume-1.6.0-bin flume

(3). 批改配置文件: flume-env.sh

# 进入配置文件目录
cd /usr/local/flume/conf
# 复制配置文件
cp flume-env.sh.template flume-env.sh
# 批改以下信息
vi flume-env.sh
export JAVA_HOME=/usr/local/jdk

(4). 配置环境变量

# 关上配置文件
vi /etc/profile
# 追加以下内容
export FLUME_HOME=/usr/local/flume
export PATH=$PATH:$FLUME_HOME/bin
# 申明环境变量,即让环境变量立刻失效
source /etc/profile
# 应用命令查看 Flume 版本信息
flume-ng version
# 执行后果
Flume 1.6.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 2561a23240a71ba20bf288c7c2cda88f443c2080
Compiled by hshreedharan on Mon May 11 11:15:44 PDT 2015
From source with checksum b29e416802ce9ece3269d34233baf43f

(5). 配置 Flume 示例 1 — netcat source

netcat source + memory channel + logger sink

# 应用 Flume 的要害就是写配置文件,别离配置 Source、Channel、Sink,而后把三者串联起来; 比方这里写一个配置文
件 $FLUME_HOME/conf/example_netcat.conf,应用 netcat source、memory channel、logger sink,# example_netcat.conf 内容如下:a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = netcat
a1.sources.r1.bind = master
a1.sources.r1.port = 55555
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

(6). 启动 Flume agent

flume-ng agent 应用 ng 启动 agent
--name a1 指定的 agent 别名
--conf YYYY/ 指定配置所在的文件夹
--conf-file YYYY/XXXXXX 指定配置文件
-Dflume.root.logger=INFO,console 可选,指定日志输入级别(输入到控制台)
& 可选,Flume 在后盾运行
# 命令示例, 依据指定的配置文件启动 Agent
flume-ng agent \
--name a1 \
--conf $FLUME_HOME/conf \
--conf-file $FLUME_HOME/conf/example_netcat.conf \
-Dflume.root.logger=INFO,console

(7). 应用 telnet 输出数据验证

telnet master 55555
# 启动后输出内容 123 就能够在 Flume 看到如下数据:Event: {headers:{} body: 31 32 33 0D 123. }
Event 是 FLume 数据传输的根本单元
Event = 可选的 header + byte array
正文完
 0