带你看懂大数据采集引擎之Flume&采集目录中的日志
一、Flume的介绍:
Flume由Cloudera公司开发,是一种提供高可用、高可靠、分布式海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于采集数据;同时,flume提供对数据进行简单处理,并写到各种数据接收方的能力,如果能用一句话概括Flume,那么Flume是实时采集日志的数据采集引擎。
二、Flume的体系结构:
Flume的体系结构分成三个部分:数据源、Flume、目的地
数据源种类有很多:可以来自directory、http、kafka等,flume提供了source组件用来采集数据源。
1、source作用:采集日志
source种类:1、spooling directory source:采集目录中的日志
2、htttp source:采集http中的日志
3、kafka source:采集kafka中的日志
……
采集到的日志需要进行缓存,flume提供了channel组件用来缓存数据。
2、channel作用:缓存日志
channel种类:1、memory channel:缓存到内存中(最常用)
2、JDBC channel:通过JDBC缓存到关系型数据库中
3、kafka channel:缓存到kafka中
……
缓存的数据最终需要进行保存,flume提供了sink组件用来保存数据。
3、sink作用:保存日志
sink种类:1、HDFS sink:保存到HDFS中
2、HBase sink:保存到HBase中
3、Hive sink:保存到Hive中
4、kafka sink:保存到kafka中
……
官网中有flume各个组件不同种类的列举:
三、安装和配置Flume:
1、安装:tar -zxvf apache-flume-1.7.0-bin.tar.gz -C ~/training
2、创建配置文件a4.conf:定义agent,定义source、channel、sink并组装起来,定义生成日志文件的条件。
以下是a4.conf配置文件中的内容,其中定义了数据源来自目录、数据缓存到内存中,数据最终保存到HDFS中,并且定义了生成日志文件的条件:日志文件大小达到128M或者经过60秒生成日志文件。
#定义agent名, source、channel、sink的名称
a4.sources = r1
a4.channels = c1
a4.sinks = k1
#具体定义source
a4.sources.r1.type = spooldir
a4.sources.r1.spoolDir = /root/training/logs
#具体定义channel
a4.channels.c1.type = memory
a4.channels.c1.capacity = 10000
a4.channels.c1.transactionCapacity = 100
#定义拦截器,为消息添加时间戳
a4.sources.r1.interceptors = i1
a4.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder
#具体定义sink
a4.sinks.k1.type = hdfs
a4.sinks.k1.hdfs.path = hdfs://192.168.157.11:9000/flume/%Y%m%d
a4.sinks.k1.hdfs.filePrefix = events-
a4.sinks.k1.hdfs.fileType = DataStream
#不按照条数生成文件
a4.sinks.k1.hdfs.rollCount = 0
#HDFS上的文件达到128M时生成一个日志文件
a4.sinks.k1.hdfs.rollSize = 134217728
#HDFS上的文件达到60秒生成一个日志文件
a4.sinks.k1.hdfs.rollInterval = 60
#组装source、channel、sink
a4.sources.r1.channels = c1
a4.sinks.k1.channel = c1
四、使用Flume语句采集数据:
1、创建目录,用于保存日志:
mkdir /root/training/logs
2、启动Flume,准备实时采集日志:
bin/flume-ng.agent -n a4 -f myagent/a4.conf -c conf -Dflume.root.logger=INFO.console
3、将日志导入到目录中:
cp * ~/training/logs
五、Sqoop和Flume的相同点和不同点:
相同点:sqoop和flume只有一种安装模式,不存在本地模式、集群模式等。
不同点:sqoop批量采集数据,flume实时采集数据。
作者:李金泽AllenLi,清华大学硕士研究生,研究方向:大数据和人工智能
带你看懂大数据采集引擎之Flume&采集目录中的日志的更多相关文章
- 详解大数据采集引擎之Sqoop&采集oracle数据库中的数据
一.Sqoop的简介: Sqoop是一个数据采集引擎/数据交换引擎,采集关系型数据库(RDBMS)中的数据,主要用于在RDBMS与HDFS/Hive/HBase之间进行数据传递,可以通过sqoop i ...
- 【 全干货 】5 分钟带你看懂 Docker !
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付 ...
- 一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了
一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了 转载: 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它 ...
- 《开源大数据分析引擎Impala实战》目录
当当网图书信息: http://product.dangdang.com/23648533.html <开源大数据分析引擎Impala实战>目录 第1章 Impala概述.安装与配置.. ...
- 一文带你彻底了解大数据处理引擎Flink内存管理
摘要: Flink是jvm之上的大数据处理引擎. Flink是jvm之上的大数据处理引擎,jvm存在java对象存储密度低.full gc时消耗性能,gc存在stw的问题,同时omm时会影响稳定性.同 ...
- 从源码带你看懂functools的partial方法
1.what? partial是什么, partial也叫偏函数.源码的描述是: 部分应用给定参数和关键字的新函数. New function with partial application of ...
- 从基础到实践,一文带你看懂HashMap
摘要:HashMap是一个用于存储Key-Value键值对的集合,它是面试中经常问到的一个知识点. HashMap是面试中经常问到的一个知识点,也是判断一个候选人基础是否扎实的标准之一,因为通过Has ...
- 图文带你看懂JavaScritpt引擎V8与JS执行过程
浏览器原理 浏览器内核与js引擎 浏览器内核又称"排版引擎","渲染引擎","浏览器引擎",叫法很多,简单来说干的活就是将代码(HTML,X ...
- 一文教你看懂大数据的技术生态圈:Hadoop,hive,spark
转自:https://www.cnblogs.com/reed/p/7730360.html 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞 ...
随机推荐
- js-ES6学习笔记-修饰器
1.修饰器对类的行为的改变,是代码编译时发生的,而不是在运行时.这意味着,修饰器能在编译阶段运行代码. 2. function testable(target) { target.isTestable ...
- 学习ES6的全部特性
ES6 简介 ECMAScript 6 简称 ES6,是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了.它的目标是使得 JavaScript 语言可以用来编写复杂的大型应用程 ...
- 高性能JavaScript(快速响应的用户界面)
浏览器UI线程 用于执行JavaScript代码和更新界面的进程被称为 “浏览器UI线程” . UI线程的工作基于一个简单的队列系统,任务会被保存到队列中直到线程空闲,一旦空闲队列就被重新提取出来运行 ...
- 数据表自增Id获取时IDENTITY的正确使用方式
在SQLServer中很多表主键会设置为自增列,有的业务需求需要知道新插入的自增Id是多少,一般我们会用SELECT @@IDENTITY来获取,可由于@@IDENTITY是个全局变量作用据较大,所以 ...
- ubuntu16.04安装matlab2016b
一.matlab2016b版本下载 在ubuntu下安装matlab2016b,需要三个文件,分别是:Matlab+2016b+Linux64+Crack.rar .R2016b_glnxa64_dv ...
- 安装ArcGIS Enterprise WebGIS (Portal ArcGIS Server DataStore ) 系统后如何应对网络环境的配置修改
客户往往在部署完ArcGIS WebGIS系统后,由于需要满足业务或者网络管理的要求,需要修改系统的网络环境的配置,下文将从常见的几个场景来讲述如何去应对这些变动. 1.网络IP地址变动 由于在部署W ...
- CentOS7上Python3.5安装
CentOS7上Python3.5安装 1.下载 https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.上传到服务器 3. yum in ...
- ElementUI制作树形表组件
提要 最近项目中需要用到树形表格来描述部门.区域之间的父子展开关系.但是已经在项目中使用的Vue的成熟组件ElementUI以及iViewUI组件都没有提供相应的树形表格组件,无奈找了其他替代方案也都 ...
- WOE和IV
woe全称是"Weight of Evidence",即证据权重,是对原始自变量的一种编码形式. 进行WOE编码前,需要先把这个变量进行分组处理(离散化) 其中,pyi是这个组中响 ...
- 详解JNDI的lookup资源引用java:/comp/env
ENC的概念: The application component environment is referred to as the ENC, the enterprise naming c ...