bigdata-11-Flume入门与部署

简介: bigdata-11-Flume入门与部署

3.1 数据采集组件-Flume


简介

Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.

简单讲:Flume是一个高可用,高可靠,分布式的海量日志采集、聚合和传输的系统,能够有效的收集、聚合、移 动大量的日志数据。

Flume优点:不需要写代码,只需要配置即可

上图就是Flume典型场景

左边的web server表示是一个web项目,web项目会产生日志数据,通过中间的Agent把日志数据采集到 HDFS中。 其中这个Agent就是我们使用Flume启动的一个代理,它是一个持续传输数据的服务,数据在Agent内部 的这些组件之间传输的基本单位是Event 从图中可以看到,Agent是由Source、Channel、Sink这三大组件组成的,这就是Flume中的三大核心组 件, 其中source是数据源,负责读取数据 channel是临时存储数据的,source会把读取到的数据临时存储到channel中 sink是负责从channel中读取数据的,最终将数据写出去,写到指定的目的地中。

特性

  • 它有一个简单、灵活的基于流的数据流结构,这个其实就是刚才说的Agent内部有三大组件,数据通过这三大组件流动。
  • 具有负载均衡机制和故障转移机制。
  • 一个简单可扩展的数据模型(Source、Channel、Sink),这几个组件是可灵活组合

高级应用场景

分析:

Source后接了三个Channel,表明数据来源后会进入三个渠道,每个渠道都会落地到不同的位置

Sink1:落地HDFS

Sink2:落地Java消息服务数据队列

Sink3:数据写入另一个Flume Agent

Flume中多个Agent之间是可以连通的,只需要让前面Agent的sink组件把数据写到下一 个Agent的source组件中即可。

Flume核心组件

  • Source:数据源
  • Channel:管道
  • Sink:数据目的地

Source

通过source组件可以指定让Flume读取哪里的数据,然后将数据传递给后面的 channel

Flume内置支持读取很多种数据源,基于文件、基于目录、基于TCP\UDP端口、基于HTTP、Kafka,也支持自定义数据源,一般生产中我们主要使用基于目录或基于文件,或是端口的

常用Source:

  • Exec Source:实现文件监控,可以实时监控文件中的新增内容,类似于linux中的tail -f 效果
  • NetCat TCP/UDP Source: 采集指定端口(tcp、udp)的数据,可以读取流经端口的每一行数据
  • Spooling Directory Source:采集文件夹里新增的文件
  • Kafka Source:从Kafka消息队列中采集数据

其中execsource 和 kafkasource在实际工作中是最 常见的,可以满足大部分的数据采集需求

Channel

Channel的类型有很多:内存、文件,内存+文件、JDBC等

  • Memory Channel:使用内存作为数据的存储 优点是效率高,因为就不涉及磁盘IO,缺点有两个 1:可能会丢数据,如果Flume的agent挂了,那么channel中的数据就丢失了。 2:内存是有限的,会存在内存不够用的情况。
  • File Channel:使用文件来作为数据的存储 优点是数据不会丢失 缺点是效率相对内存来说会有点慢,但是这个慢并没有我们想象中的那么慢, 所以这个也是比较常用的一种channel。
  • Spillable Memory Channel:使用内存和文件作为数据存储,即先把数据存到内存中,如果内存中 数据达到阈值再flush到文件中 优点:解决了内存不够用的问题。 缺点:还是存在数据丢失的风险

Sink

Sink的表现形式有很多:打印到控制台、HDFS、Kafka等

  • Logger Sink:将数据作为日志处理,可以选择打印到控制台或者写到文件中,这个主要在测试的时 候使用
  • HDFS Sink:将数据传输到HDFS中,这个是比较常见的,主要针对离线计算的场景
  • Kafka Sink:将数据发送到kafka消息队列中,这个也是比较常见的,主要针对实时计算场景,数据 不落盘,实时传输,最后使用实时计算框架直接处理。

Flume部署

想要使用Flume采集数据,那肯定要先安装Flume

在这里我重新克隆了一台Linux机器

主机名设置为bigdata04

ip设置为192.168.182.104 关闭防火墙,安装jdk并配置环境变量,因为Flume是java开发,所以需要依赖jdk环境 这些工作已经提前做好了,继续往下面分析 想要安装Flume,首先需要下载Flume,进入Flume的官网,找到Download链接

安装包下载好以后上传到linux机器的/data/soft目录下,并且解压

这里由于我Xshell有点问题,我更换了下终端工具,使用更强大的MobaXterm,包括Flume在内的所有软件已上传网盘,感谢各位支持

链接:https://pan.baidu.com/s/1sgmEe5qjAUbuTA_bmfLJTQ?pwd=3g6h
提取码:3g6h
--来自百度网盘超级会员V7的分享

bigdata04是客户机

上传完成

直接解压即可

修改盘flume的env环境变量配置文件

在flume的conf目录下,修改flume-env.sh.template的名字,去掉后缀template

改名即可,配置完成

mv flume-env.sh.template  flume-env.sh

目录
相关文章
|
29天前
|
存储 SQL Shell
bigdata-13-Flume实战
bigdata-13-Flume实战
23 0
|
29天前
bigdata-12-Flume核心组件
bigdata-12-Flume核心组件
24 0
|
22天前
|
消息中间件 存储 分布式计算
【Flume 】Flume 基础概述
【4月更文挑战第4天】【Flume 】Flume 基础概述
|
29天前
|
存储 数据采集 JSON
bigdata-14-Flume高级组件
bigdata-14-Flume高级组件
25 1
|
存储 消息中间件 SQL
搭建flume-1.9.0
Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。flume具有高可用,分布式,配置工具,其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中
498 1
搭建flume-1.9.0
|
5月前
|
数据采集 分布式计算 Hadoop
62 Flume的安装部署
62 Flume的安装部署
45 0
|
8月前
|
SQL 分布式计算 监控
Flume学习--1、Flume概述、Flume入门、(一)
Flume学习--1、Flume概述、Flume入门、(一)
|
8月前
|
JSON 监控 Unix
Flume学习--1、Flume概述、Flume入门、(二)
Flume学习--1、Flume概述、Flume入门、(二)
|
存储 缓存 分布式计算
入门Flume
你好看官,里面请!今天笔者讲的是入门Flume。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
239 1
|
SQL 消息中间件 缓存
Apache Flume- 安装部署&简单入门|学习笔记
快速学习 Apache Flume- 安装部署&简单入门
373 0
Apache Flume- 安装部署&简单入门|学习笔记