flume框架基础

王振龙 王振龙     2022-10-09     259

关键词:

* Flume框架基础

框架简介:

** Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务,Flume只能在Unix环境下运行。

** Flume基于流式架构,容错性强,也很灵活简单,主要用于在线实时的引用分析。

宏观认知:

** Flume、Kafka用来实时进行数据收集,Spark、Storm用来实时处理数据,impala用来实时查询。

Flume架构图:

如果所示,Flume架构只有一个Agent角色节点,该角色节点由Source、Channel、Sink组成。

 
技术分享图片
 

简单介绍一下各个组成部分的功能:

Source:Source用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel,这个有点类似于Java IO部分的Channel。

Channel:用于桥接Sources和Sinks,类似于一个队列。

Sink:从Channel收集数据,将数据写到目标源(可以是下一个Source,也可以是HDFS或者HBase)

数据传输单元:Event

** Event是Flume数据传输的基本单元

** Flume以事件的形式将数据从源头送至目的地

** Envent由可选的header和载有数据的一个byte array构成,载有的数据对于flume是不透明的,header容纳了key-value键值对的无需集合,key在某个集合内唯一,header还可以在上下文路由中拓展使用。

Flume传输过程:

如下图所示,source监控某个文件,文件产生新的数据,拿到该数据后,将数据封装在一个Event中,并put到channel后commit提交,channel队列先进先出,sink去channel队列中拉取数据,然后写入到hdfs或者HBase中。

 
技术分享图片
 

* 安装Flume

** 下载地址传送门:链接:http://pan.baidu.com/s/1eSOOKam 密码:ll6r

** 拷贝,解压,不赘述了

** 配置文件

将conf目录下的flume-env.sh(重命名template文件就行了)文件的JAVA_HOME配置一下,依然不赘述了

** 命令使用

$ bin/flume-ng,出现如下图所示内容:

 
技术分享图片
 

解释:

--conf:指定配置目录

--name:指定Agent名称

--conf-file:指定具体的配置文件

* 案例

例1:使用flume监听某个端口,将端口写入的数据输出

Step1、修改配置文件

$ cp -a conf/flume-conf.properties.template conf/flume-telnet.conf,变更为如下内容:

 
技术分享图片
注意最后两个channel一个有s,一个没有

解释:

r1:即源,监控的数据源,resource的缩写

k1:即 sink缩写

c1:即channel缩写

Step2、安装telnet命令

由于默认没有该命令,我们来使用yum命令安装一下,注意进入root用户

# yum -y install telnet

Step3、运行flume端口监控

$ bin/flume-ng agent --conf conf/ --name a1 --conf-file conf/flume-telnet.conf -Dflume.root.logger==INFO,console

分别指定name,配置文件目录,配置文件,以及输出类型和位置。

运行如图:

 
技术分享图片
 

Step4、测试

另开一个CRT到z01的界面

执行命令:

$ netstat -an | grep 44444,用于检查44444端口是否已经被flume成功监听,如图:

 
技术分享图片
 

$ telnet localhost 44444,用于连接本机44444端口,进行数据发送(此处也可是使用其他命令,比如netcat等),此处在另一个窗口中进行telnet命令,原来执行flume的那个窗口查看数据是否成功监听到,测试如图:

发送端:

 
技术分享图片
 

监听端:

 
技术分享图片
 

如图所示,测试成功。如果需要退出telnet,使用ctrl+]键,再输入quit即可。

例2:某个系统框架的日志文件到HDFS

Step1、修改配置文件

更多参数配置的含义,请参看官文:http://flume.apache.org/FlumeUserGuide.html#hdfs-sink

$ cp -a conf/flume-telnet.conf conf/flume-apache-log.conf,变更为如下内容:

 
技术分享图片
 

知识补充:

 
技术分享图片
 

Step2、安装httpd

# yum -y install httpd

(注:httpd是Apache HTTP服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池)

Step3、启动httpd服务

centOS 7:

# systemctl start httpd.service

centOS 6:

# service httpd start

Step4、修改/var/log目录下的httpd文件夹的权限,以便于访问

# chmod 755 /var/log/httpd/

# vi /var/www/html/index.html,随便写点什么,如图:

 
技术分享图片
 

Step5、执行如下 命令后,使用浏览器访问网页,查看产生的日志

$ tail -f /var/log/httpd/access_log,多次访问后,如图所示:

(浏览器打开:192.168.122.200,根据自己的配置IP访问即可。)

 
技术分享图片
 

Step6、拷贝Flume所依赖的Hadoop的jar到自己的lib目录

cp /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/share/hadoop/common/lib/hadoop-auth-2.5.0-cdh5.3.6.jar /opt/modules/cdh/apache-flume-1.5.0-cdh5.3.6-bin/lib

cp /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/share/hadoop/common/lib/commons-configuration-1.6.jar /opt/modules/cdh/apache-flume-1.5.0-cdh5.3.6-bin/lib

cp /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/share/hadoop/mapreduce1/lib/hadoop-hdfs-2.5.0-cdh5.3.6.jar /opt/modules/cdh/apache-flume-1.5.0-cdh5.3.6-bin/lib

cp /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/share/hadoop/common/hadoop-common-2.5.0-cdh5.3.6.jar /opt/modules/cdh/apache-flume-1.5.0-cdh5.3.6-bin/lib

拷贝完成后,flume的lib目录如下:

 
技术分享图片
 

Step7、启动Hadoop相关服务后,执行flume-ng命令

$ bin/flume-ng agent --conf conf/ --name a2 --conf-file conf/flume-apache-log.conf

(尖叫提示:如果想让flume-ng命令在后台运行,不持续占用终端的操作,可以在命令的末尾加上&符号,即:

$ bin/flume-ng agent --conf conf/ --name a2 --conf-file conf/flume-apache-log.conf &)

检查flume的log日志,没有确认没有ERROR或者WARN错误后,刷新index.html页面,即可看到日志已经迁移至HDFS集群,如图:

 
技术分享图片
 
 
技术分享图片
 
 
技术分享图片
 
 
技术分享图片
 

以上便实现了Flume的日志收集,其他收集大同小异,大家可自行参照官方文档中的参数设置。

* 总结

flume就是一个流式的,日志采集框架,就像是一个挂在后台的收集器一样,实时监听你需要收集的文件或者目录。


个人微博:http://weibo.com/seal13

QQ大数据技术交流群(广告勿入):476966007



作者:Z尽际
链接:https://www.jianshu.com/p/e71643e6546e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。







flume基础:概述

1Flume定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。2Flume组成架构Flume组成架构如图1-1,图1-2所示:  2.1AgentAgent是一个JVM进程,它以事件的形... 查看详情

flume+kafka+sparkstreaming+hbase+可视化(代码片段)

...Spark、Flume、Kafka、Hbase基础知识 二、分布式日志收集框架Flume业务现状分析:服务器、web服务产生的大量日志,怎么使用,怎么将大量日志导入到集群1、shell脚本批量,再传到Hdfs:实效性不高,容错率低,网络/磁盘IO,监控2... 查看详情

flume基础:快速入门(代码片段)

1Flume安装地址1)Flume官网地址http://flume.apache.org/2)文档查看地址http://flume.apache.org/FlumeUserGuide.html3)下载地址http://archive.apache.org/dist/flume/2安装部署1)将apache-flume-1.7.0-bin.tar.gz上传到linux的/opt/software目录 查看详情

sqoop框架基础

Sqoop框架基础本节我们主要需要了解的是大数据的一些协作框架,也是属于Hadoop生态系统或周边的内容,比如:**数据转换工具:Sqoop**文件收集库框架:Flume**任务调度框架:Oozie**大数据Web工具:Hue这些框架为什么成为主流,请... 查看详情

日志采集框架flume的安装及使用

日志采集框架Flume的安装及使用1.Flume介绍1.1.Flume概述Flume是一个分布式、可靠、和高可用(旧版Flumeog才有高可用)的海量日志采集、传输和聚合的系统。Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输... 查看详情

flume日志采集框架使用

flume日志采集框架使用 本次学习使用的全部过程均不在集群上,均在本机环境,供学习参考 先决条件:flume-ng-1.6.0-cdh5.8.3.tar 去cloudrea下载flume框架,笔者是用cdh5.8.3的套餐 flume的使用环境:采集特定目录到hdfs环境... 查看详情

日志采集框架flume

...系统,而这些辅助工具在hadoop生态体系中都有便捷的开源框架,如图所示:      1.日志采集框架Flume1.1Flume介绍1.1.1概述u Flume是一个分布式、可 查看详情

日志采集框架flume

概述Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中 一般的采集需求,... 查看详情

大数据课程基础内容都应该包含哪些

...入关系型数据库中。  Flume:实时数据采集的一个开源框架,它是Cloudera提供的一个高可用用的、高可靠、分布式的海量日志采集、聚合和传输的系统。目前已经是Apache的顶级子项目。使用Flume可以收集诸如日志、时间等数据并... 查看详情

日志抽取框架flume简介与安装配置(代码片段)

一:flume简介与功能二:flume安装与配置与简单测试一:flume的简介与功能架构1.1flume的简介:1.1.1Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发... 查看详情

flume协作框架

1.概述    -》flume的三大功能     collecting,aggregating,andmoving       收集 聚合 移动 2.框图   3.架构特点   -》onstreamingdataflows     基于流式的数据     数据流:job-》不断获取数据    ... 查看详情

日志采集框架flume技术

一、Flume简介(1)Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务,Flume只能在Unix环境下运行。(2)Flume基于流式架构,容错性强,也很灵活简单。(3&... 查看详情

flume协作框架

1.概述    -》flume的三大功能    collecting,aggregating,andmoving       收集 聚合 移动 2.框图  3.架构特点  -》onstreamingdataflows    基于流式的数据    数据流:job-》不断获取数据    任务流... 查看详情

flume学习之路flume的基础介绍(代码片段)

一、背景Hadoop业务的整体开发流程:从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步。许多公司的平台每天会产生大量的日志(一般为流式数据,如,... 查看详情

flume概述(代码片段)

目录一.Flume定义二.Flume基础架构1.Agent2.Source3.Sink4.Channel5.Event一.Flume定义? Flume是Cloudera公司提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。? Flume最主要的作用就是,实时... 查看详情

flume搭建及学习(基础篇)

  转载请注明原文出处:http://www.cnblogs.com/lighten/p/6830439.html 1.简介  该文主要是翻译官方的相关文档,源地址点击这里。介绍一下Flume的一些基本知识和搭建方法。  ApacheFlume是一种分布式,可靠和可用的系统,用于高... 查看详情

flume学习之路flume的基础介绍(代码片段)

目录一、背景二、Flume的简介三、FlumeNG的介绍3.1 Flume特点3.2 Flume的一些核心概念3.3 FlumeNG的体系结构3.4 Source3.5 Channel3.6 Sink四、Flume的部署类型4.1 单一流程4.2 多代理流程(多个agent顺序连接)4.3 流的合并(多个Agent... 查看详情

flume基础:自定义interceptor(代码片段)

1)案例需求使用Flume采集服务器本地日志,需要按照日志类型的不同,将不同种类的日志发往不同的分析系统。2)需求分析  在实际的开发中,一台服务器产生的日志类型可能有很多种,不同类型的日志可能需要发送到不同... 查看详情