昨天没有增加小粉丝,我反思了一下自己,是不是我写的东西太过枯燥了呀!挺难受的!算了还是不说了,每天都是美好的一天,给自己一个微笑吧 😃 加油!

一、概述

日志分类

(1)业务操作日志

一般存储在RDBMS上,多用于出现在后台管理系统 记录相关的操作。(数据量不大)

(2)系统运行日志

要视具体的系统体现而看。指的是采集系统运行日志,进行系统监控。

(3)用户行为日志

采集用户行为

点击、正常浏览、加入购物车、加入收藏、下单

Flume 概述

flume收集日志txt flume日志采集实训总结_JVM

组件

功能

Agent

使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个source,channel以及sink。

Source

从Client收集数据,传递给Channel。

Sink

从Channel收集数据,运行在一个独立线程。

Channel

连接 sources 和 sinks ,这个有点像一个队列。

Events

可以是日志记录、 avro 对象等。

(1) 简介

Flume是一个分布式的日志收集系统,可以处理各种类型各种数据格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义等。

(2)Flume架构

Flume以agent为最小的独立运行单位一个agent就是一个JVM。单agent有Source、Sink、和Chanel三大组件构成,agent里面包含三个核心组件:source→chanel→sink,类似生产者、仓库、消费者的架构。

(3) Flume核心概念:

Agent:使用JVM运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个source和sinks。
Client:生产数据,运行在一个独立的线程。
Source:从Cilent手机数据,产送给Chanel。
Sink:从Chanel手机数据,运行在一个独立的线程。
Chanel:连接Source和Sinks,这有点像一个队列。
Events:可以是日志记录,avro对象等。

(4) Flume运行流程:

Flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带的日志数据(字节数组形式)并且携带有头信息,这些Event有Agent外物的Source。当Source捕获事件后进行特定的格式化,然后Source会把事件推入(单个或者多个)Chanel中。你可以把Chanel看作是一个缓冲区,它将保存时间知道Sink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source。Flume之所以这么神奇,是源于它自身的一个设计,这个设计就是Agent,Agent本身就是一个Java进程。运行在日志收集节点。

(5) Flume三大组件:

Source,Chanel,Sink

Source

从数据发生器接受数据,并将接受的数据以Flume的event格式传递一个或者多个通道Chanel,Flume提供多种数据接受方式,比如avro,等。

Chanel

Chanel是一个短暂的存储容器,它将从Source处接受到的event合适的数据存储起来,直到他们被Sinks消费掉,它在Source和Sink间起着一共桥梁的作用,Chanel是一个完整的事务,这一点保证了数据在收发的时候一致性,并且它可以和任意数量的Source和Sink链接,支持的数据类型有:JDBC
channel , File System channel , Memort channel等.

Sink

Sink将数据存到集中存储的容器中比如Hbase和HDFS,它从chanel消费数据(events)并将其传递的目标地,目标地可能是另一个Sink,也可能是HDFS,HBase。

献给每一个正在努力的我们,就算在忙,也要注意休息和饮食哦!我就是我,一个在互联网跌跌撞撞,摸爬滚打的热忱,给个三连吧~ 还有就是不要只看,多动手才行!努力呀!