Apache Flume及快速安装

简介: Apache Flume及快速安装

Apache Flume 介绍

在一个完整的离线大数据处理系统中,除了 hdfs+mapreduce+hive 组成分析系统的核心之外, 还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop 生态体系中都有便捷的开源框架,如图所示:

1.概述

Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。

Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。为了保证输送的过程一定成功,在送到目的地(sink)之前, 会先缓存数据(channel),待数据真正到达目的地(sink)后,flume 在删除自己缓存的数据。

Flume 可以采集文件,socket 数据包、文件、文件夹、kafka 等各种形式源数据,又可以将采集到的数据(下沉 sink)输出到 HDFS、hbase、hive、kafka 等众多外部存储系统中。针对特殊场景也具备良好的自定义扩展能力。因此,flume 可以适用于大部分的日常

数据采集场景。

当前 Flume 有两个版本。Flume 0.9X 版本的统称 Flume OG( original generation),Flume1.X 版本的统称 Flume NG(next generation)。由于 Flume NG 经过核心组件、核心配置以及代码架构重构,与 Flume OG 有很大不同,使用时请注意区分。改动的另一原因是将 Flume 纳入 apache 旗下,Cloudera Flume 改名为 Apache Flume。

2.运行机制

Flume 系统中核心的角色是 agent,agent 本身是一个 Java 进程,一般运行在日志收集节点。

每一个 agent 相当于一个数据传递员,内部有三个组件: Source:采集源,用于跟数据源对接,以获取数据;

Sink:下沉地,采集数据的传送目的,用于往下一级 agent 传递数据或者往最终存储系统传递数据;

Channel:agent 内部的数据传输通道,用于从 source 将数据传递到 sink; 在整个数据的传输的过程中,流动的是 event,它是 Flume 内部数据传输的

最基本单元。event 将传输的数据进行封装。如果是文本文件,通常是一行记录, event 也是事务的基本单位。event 从 source,流向 channel,再到 sink,本身为一个字节数组,并可携带 headers(头信息)信息。event 代表着一个数据的最小完整单元,从外部数据源来,向外部的目的地去。

一个完整的 event 包括:event headers、event body、event 信息,其中event 信息就是 flume 收集到的日记记录。

3.结构

3.1.简单结构

单个 agent 采集数据

3.2.复杂结构

多级 agent 之间串联

三、Flume安装部署

Flume的安装非常简单

上传安装包到数据源所在节点上

然后解压 tar -zxvf apache-flume-1.8.0-bin.tar.gz

然后进入flume的目录,修改conf下的flume-env.sh,在里面配置

JAVA_HOME=/export/servers/jdk1.8.0_65

根据数据采集需求配置采集方案,描述在配置文件中(文件名可任意自定义)

指定采集方案配置文件,在相应的节点上启动flume agent

先用一个最简单的例子来测试一下程序环境是否正常

1、先在flume的conf目录下新建一个文件

vi netcat-logger.conf

# 定义这个agent中各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 描述和配置source组件:r1
a1.sources.r1.type = netcat
a1.sources.r1.bind = node01
a1.sources.r1.port = 44444
# 描述和配置sink组件:k1
a1.sinks.k1.type = logger
# 描述和配置channel组件,此处使用是内存缓存的方式
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 描述和配置source  channel   sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

2、启动agent去采集数据

bin/flume-ng agent -c conf -f conf/netcat-logger.conf -n a1  -Dflume.root.logger=INFO,console

-c conf 指定flume自身的配置文件所在目录

-f conf/netcat-logger.con 指定我们所描述的采集方案

-n a1 指定我们这个agent的名字

3、测试

先要往agent采集监听的端口上发送数据,让agent有数据可采。

随便在一个能跟agent节点联网的机器上:

yum -y install telnet
telnet  hostname  44444   # 使用telnet模拟数据发送


目录
相关文章
|
9天前
|
网络安全 Apache
Apache服务器安装SSL证书
Apache服务器安装SSL证书
36 0
|
9天前
|
Apache PHP
Windows11 安装Apache24全过程
Windows11 安装Apache24全过程
129 0
|
9天前
|
SQL 分布式计算 数据可视化
Apache Zeppelin系列教程第一篇——安装和使用
Apache Zeppelin系列教程第一篇——安装和使用
100 0
|
9天前
|
消息中间件 分布式计算 大数据
【大数据技术Hadoop+Spark】Flume、Kafka的简介及安装(图文解释 超详细)
【大数据技术Hadoop+Spark】Flume、Kafka的简介及安装(图文解释 超详细)
87 0
|
9天前
|
Shell
Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
【2月更文挑战第17天】Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
92 2
|
9天前
|
Java Linux
Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
【2月更文挑战第16天】Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
48 0
|
9天前
|
Linux Apache
Centos7 安装Apache
安装Apache的步骤
41 6
|
9天前
|
弹性计算 Shell Apache
一键安装apache脚本
【4月更文挑战第30天】
19 1
|
9天前
|
存储 Linux 数据库
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
40 0
|
9天前
|
存储 监控 Linux
Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
【2月更文挑战第17天】Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
57 1
Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)

热门文章

最新文章

推荐镜像

更多