flume

Flume 事务与传输流程

淺唱寂寞╮ 提交于 2019-11-30 10:57:14
一、Flume 事务 流程图 Put 事务流程 doPut:将批数据先写入临时缓冲区 putList doCommit:检查 channel 内存队列是否足够合并 doRollback:channel 内存队列空间不足,回滚数据 Take 事务流程 doTake:将数据取到临时缓冲区 takeList,并将数据发送到 HDFS doCommit:如果数据全部发送成功,则清除临时缓冲区 takeList doRollback:数据发送过程中如果出现异常,rollback 将临时缓冲区 takeList 中的数据归还给 channel 内存队列 二、Flume 传输流程 流程图 重要组件: 4) Channel Selector Channel Selector 的作用就是选出 Event 将要被发往哪个 Channel。共有两种类型,分别是 Replicating Channel Selector (default) (复制)和 Multiplexing Channel Selector (多路复用)。 Replicating Selector 会将 source 过来的每一个 Event 发往所有的 Channel,Multiplexing 会根据相应的原则,将不同的 Event 发往不同的 Channel。 7) Sink Processor Sink Processor

Flume 初探

*爱你&永不变心* 提交于 2019-11-30 10:30:44
Apache 是一个高可用、高可靠的,分布式的海量日志采集、聚合、传输系统,基于流式架构,灵活简单。 Flume 最主要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS中。 Flume组成架构详解: Source输入端常用的类型有:spooling directory、exec、avro、syslog、netcat 等 Put事务的流程: doPut:将批数据先写入临时缓冲区putList doCommit:检查channel内存队列是否足够合并 doRollback;channel内存队列空间不足,回滚数据 Channel是位于Source和Sink之间的缓冲区,Flume自带两种channel:MemoryChannel和FileChannel MemoryChannel是基于内存的缓存,在不需要关心数据丢失的情景下使用。 FileChannel是Flume的持久化Channel,系统宕机不会丢失数据。 Take事务: doTake:先将数据取到临时缓冲区takeList doCommit:如果数据发送成功,则清除临时缓冲区的takeList doRollback:数据发送过程中如果出现异常,rollback将临时缓冲区takeList中的数据归还给channel内存队列 Sink组件常见的目的地包括: HDFS、Kafka、avro、logger、File、自定义。

Filtering log files in Flume using interceptors

馋奶兔 提交于 2019-11-30 07:41:13
I have an http server writing log files which I then load into HDFS using Flume First I want to filter data according to data I have in my header or body. I read that I can do this using an interceptor with regex, can someone explain exactly what I need to do? Do I need to write Java code that overrides the Flume code? Also I would like to take data and according to the header send it to a different sink (i.e source=1 goes to sink1 and source=2 goes to sink2) how is this done? thank you, Shimon You don't need to write Java code to filter events. Use Regex Filtering Interceptor to filter events

Rebalancing issue while reading messages in Kafka

怎甘沉沦 提交于 2019-11-30 06:53:05
I am trying to read messages on Kafka topic, but I am unable to read it. The process gets killed after sometime, without reading any messages. Here is the rebalancing error which I get: [2014-03-21 10:10:53,215] ERROR Error processing message, stopping consumer: (kafka.consumer.ConsoleConsumer$) kafka.common.ConsumerRebalanceFailedException: topic-1395414642817-47bb4df2 can't rebalance after 4 retries at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener.syncedRebalance(ZookeeperConsumerConnector.scala:428) at kafka.consumer.ZookeeperConsumerConnector.kafka$consumer

Flume自定义组件

感情迁移 提交于 2019-11-30 06:12:41
文章目录 七、 Flume高阶自定义组件 1. Flume自定义Source (扩展) 1.1. 自定义Source说明 1.2. 自定义Source原理 1.3. 自定义Source具体实现 2. Flume自定义Sink(扩展) 2.1. 自定义Sink说明 2.2. 自定义Sink原理实现 七、 Flume高阶自定义组件 1. Flume自定义Source (扩展) 1.1. 自定义Source说明 Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。官方提供的source类型已经很多,但是有时候并不能满足实际开发当中的需求,此时我们就需要根据实际需求自定义某些source。 如:实时监控MySQL,从MySQL中获取数据传输到HDFS或者其他存储框架,所以此时需要我们自己实现 MySQLSource 。 官方也提供了自定义source的接口: 官网说明: https://flume.apache.org/FlumeDeveloperGuide.html#source 1.2. 自定义Source原理

How to setup a HTTP Source for testing Flume setup?

好久不见. 提交于 2019-11-30 05:03:44
I am a newbie to Flume and Hadoop. We are developing a BI module where we can store all the logs from different servers in HDFS. For this I am using Flume. I just started trying it out. Succesfully created a node but now I am willing to setup a HTTP source and a sink that will write incoming requests over HTTP to local file. Any suggesstions? Thanks in Advance/ Hopefully this helps you get started. I'm having some problems testing this on my machine and don't have time to fully troubleshoot it right now, but I'll get to that... Assuming you have Flume up and running right now, this should be

Flume-Exec Source 监控单个本地文件

谁说胖子不能爱 提交于 2019-11-30 04:38:15
实时监控,并上传到 HDFS 中。 一、Flume 要想将数据输出到 HDFS,须持有 Hadoop 相关 jar 包 若 Hadoop 环境和 Flume 在同一节点,那么只要配置 Hadoop 环境变量即可,不需要复制相关 jar 包。 # 将相关包拷贝到 flume 的 lib 目录下 # commons-configuration-1.6.jar # hadoop-auth-x.x.x.jar、 # hadoop-common-x.x.x.jar、 # hadoop-hdfs-x.x.x.jar、 # commons-io-x.x.jar、 # htrace-core-x.x.x-incubating.jar cp /opt/hadoop-2.9.2/share/hadoop/hdfs/hadoop-hdfs-2.9.2.jar /opt/apache-flume-1.9.0-bin/lib/ cp /opt/hadoop-2.9.2/share/hadoop/common/hadoop-common-2.9.2.jar /opt/apache-flume-1.9.0-bin/lib/ cp /opt/hadoop-2.9.2/share/hadoop/common/lib/commons-io-2.4.jar /opt/apache-flume-1.9.0-bin/lib

Flume 概述

青春壹個敷衍的年華 提交于 2019-11-30 04:18:42
Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。 Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS。 一、架构 https://flume.apache.org/FlumeUserGuide.html#data-flow-model 二、组件 1.Agent Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的。 Agent 主要有 3 个部分组成,Source、Channel、Sink。 2.Source https://flume.apache.org/FlumeUserGuide.html#flume-sources Source 是负责接收数据到 Flume Agent 的组件。 Source 组件可以处理各种类型、各种格式的日志数据,包括 avro、thrift、exec、jms、spooling directory、netcat、sequence、generator、syslog、http、legacy。 3.Sink https://flume.apache.org/FlumeUserGuide.html#flume-sinks Sink 不断地轮询 Channel 中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统

Flume学习笔记

徘徊边缘 提交于 2019-11-30 02:10:44
为什么用Flume: 可靠性: Flume是Cloudera公司的一款高性能、高可用的分布式日志收集系统。 Flume的核心是把数据从数据源收集过来再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,再删除缓存的数据。 Flume传输数据的基本单位是event,如果是文本文件,通常是一行记录,这也是事务的基本单位。 Flume运行的核心是Agent。它是一个完整的数据收集工具,含有三个核心组件,分别是Source、Channel、Sink。 Source组件是专门用于收集日志的,可以处理各种类型各种格式的日志数据,包括Avro、Thrift、Exec、Jms、Spooling directory、Netcat、Sequence Generator、Syslog、HTTP、Legacy、自定义。 Source组件把数据收集来以后,临时存放在Channel中。 Channel组件是在Agent中专门用于临时存储数据的,Source收集的数据将临时储蓄于此,可以存放在Memory、Jdbc、File、自定义。 Channel中的数据只有在Sink发送成功之后才会被删除。 Sink组件是用于把Channel中数据发送到目的地的组件,目的地包括HDFS、Logger、Avro、Thrift、Ipc、File、Null、HBase、Solr、自定义。

Flume 入门

[亡魂溺海] 提交于 2019-11-29 21:03:06
1 Flume 概述 1.1 定义 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统; Flume 基于流式架构,灵活简单。 1.2 特点 可以和任意存储进程集成 输入的的数据速率大于写入目的存储的速率, Flume 会进行缓冲,减小 HDFS 的压力 Flume 中的事务基于 Channel ,使用了两个事务模型( sender + receiver ),确保消息被可靠发送 Flume 使用两个独立的事务分别负责从 Soucrce 到 Channel ,以及从 Channel 到 Sink 的事件传递。一旦事务中所有的数据全部成功提交到 Channel ,那么 Source 才认为该数据读取完成,同理,只有成功被 Sink 写出去的数据,才会从 Channel 中移除 1.3 组成架构 1.3.1 Agent Agent 是一个 JVM 进程,它以事件的形式将数据从源头传递到目的地 Agent 主要由 Source 、 Channel 、 Sink 组成 1.3.2 Source Source 是负责接收数据到 Agent 的组件,可以处理各种类型,包括 avro 、 thrift 、 exec 、 jms 、 spooling directory 、 netcat 、 sequence generator 、 syslog