简单拓扑结构 这种模式是将多个flume顺序连接起来了,从最初的source开始到最终sink传送的目的存储系统。 此模式不建议桥接过多的flume数量, flume数量过多不仅会影响传输速率,而且一旦传输过程中某个节点flume宕机,会影响整个传输系统。 image.png 复制和多路复用 Flume支持将事件流向一个或者多个目的地。 image.png 负载均衡和故障转移 Flume支持使用将多个sink逻辑上分到一个sink组,sink组配合不同的SinkProcessor可以实现负载均衡和错误恢复的功能。 用flume的这种组合方式能很好的解决这一问题,每台服务器部署一个flume采集日志,传送到一个集中收集日志的flume,再由此flume上传到hdfs、hive、hbase等,进行日志分析。
(2)Flume的安装: 1)上传下载好的flume压缩包到Linux系统中,并为压缩包赋予执行权限: $ chmod u+x flume-ng-1.5.0-cdh5.3.6.tar.gz 2)解压 flume安装包: $ tar -zxf flume-ng-1.5.0-cdh5.3.6.tar.gz -C /opt/cdh-5.3.6/ 3)将flume文件夹改名: cdh-5.3.6]$ mv apache-flume-1.5.0-cdh5.3.6-bin/ flume-1.5.0-cdh5.3.6 4)修改配置文件/opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6 flume-1.5.0-cdh5.3.6]$ cd conf conf]$ cp flume-env.sh.template flume-env.sh export JAVA_HOME=/opt/modules 命令 [beifeng@hadoop-senior flume-1.5.0-cdh5.3.6]$ bin/flume-ng Usage: bin/flume-ng <command> [options
个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。
一、Flume简介 flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。 但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.9.4. 及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume 4.2、Flume数据流 1)Flume 的核心是把数据从数据源收集过来,再送到目的地。 4.3、Flume可靠性 Flume 使用事务性的方式保证传送Event整个过程的可靠性。
这是Flume中单跳的消息传递语义提供的流的端到端的可靠性。Flume使用了一种传统途径来保证Event传递的可靠性。 Flume Source理解的消息;另一种方法是写一个自定义Flume Source直接用IPC或者RPC协议和现有的客户端应用通信,然后将客户端数据转换成Flume Event向下游发送。 注意Flume agent中所有在Channel中存放的event必须作为Flume Event存在。 Flume Client SDK就是这样一个库,能够使应用和Flume相连,并通过RPC向Flume发送数据。 RPC客户端接口 Flume的RPCClient接口的实现包含了Flume支持的RPC机制。
“ Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。” 02 — Flume架构 Flume最简单的部署单元叫做Flume Agent,包括三个主要组件:Source、Channel、Sink; Source:Source负责获取事件到Flume Agent Flume本身并不限制Agent中的Source、Channel、Sink数量,因此Flume支持将Source中的数据复制到多个目的地。 Sink组 Flume提供一种Sink组的概念,每个Sink组包含任意数量的Sink,在Sink组实现负载均衡和故障转移。 构建FLume时的几个关键点 Channel容量大小 整个数据采集系统分为多少层级,考虑Sink下游故障下,用什么方案继续缓冲数据 如何监控Flume运行情况,包括部署Agent的JVM内存、流量
Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景 当前Flume有两个版本: Flume 0.9X版本的统称Flume-og Flume1.X版本的统称 Flume-ng 由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分 运行机制 1、要想使用Flume,就需要运行Flume代理。 Flume的下载 下载地址https://flume.apache.org/download.html或http://archive.apache.org/dist/flume/ Flume的安装 Flume cd flume-1.8.0/conf cp flume-env.sh.template flume-env.sh chmod 777 flume-env.sh 在flume-env.sh脚本中配置JAVA_HOME =/opt/flume/flume-1.8.0 export PATH=$PATH:$FLUME_HOME/bin 保存后,加载生效 source /etc/profile 查看版本 flume-ng
参考 Flume架构以及应用介绍 一.简介 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据 ;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 image.png 二.主要功能 1.日志收集 Flume最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目,Flume支持在日志系统中定制各类数据发送方,用于收集数据。 2.数据处理 Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力 Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX image.png 三.Flume架构 Flume使用agent来收集日志,agent包括三个组成部分: source:收集数据 channel:存储数据 sink :输出数据 Flume使用source
Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。 因此,flume 可以适用于大部分的日常 数据采集场景。 当前 Flume 有两个版本。 Flume 0.9X 版本的统称 Flume OG( original generation),Flume1.X 版本的统称 Flume NG(next generation)。 由于 Flume NG 经过核心组件、核心配置以及代码架构重构,与 Flume OG 有很大不同,使用时请注意区分。 改动的另一原因是将 Flume 纳入 apache 旗下,Cloudera Flume 改名为 Apache Flume。
前言 本文是基础性文章,针对初次接触flume的朋友,简化了大部分内容,后续有时间会加上相关高级使用 为什么需要flume? 负载均衡:flume 是分布式,对于大数据收集有天然优势 对 hdfs 支持友好 灵活:flume 收集基于单个 agent,扩展方便灵活 flume 有什么优势? 优势都是相对而言,我们简单以 kafka 来对比: 组件灵活,可定制化高 数据处理能力相对较强 对hdfs 有特殊优化 开启一个简单的flume 这里我们先什么都不管,先来玩一下flume,感受一下flume 版本 下载 flume :http://flume.apache.org/download.html 解压,得到如下目录 ? flume一般架构 首先我们先来看一下 flume 的整体架构,官网架构图如下 ?
配置文件(采用KafkaSink作为kafka生产者) #创建并编辑文件名为flume_kafka01.conf配置文件 vim /root/flume/flume_kafka01.conf #创建flume 配置文件(采用KafkaSource作为kafka消费者) vim /root/flume/kafka_flume01.conf a1.sources = s1 a1.channels = c1 a1 .sinks = k1 a1.sources.s1.type = org.apache.flume.source.kafka.KafkaSource a1.sources.s1.batchSize = 消费者 flume-ng agent -n a1 -c conf/ -f /root/flume/kafka_flume01.conf -Dflume.root.logger=INFO,console 启动flume生产者 flume-ng agent -n a1 -c conf/ -f /root/flume/flume_kafka02.conf -Dflume.root.logger=INFO,console
1.2 Flume组成架构 Flume组成架构如下图所示: ? Flume组成架构 ? 下面我们来详细介绍一下Flume架构中的组件。 1)案例需求:使用Flume-1监控文件变动,Flume-1将变动内容传递给Flume-2,Flume-2负责存储到HDFS。 4.执行配置文件 分别开启对应配置文件:flume-flume-dir,flume-flume-hdfs,flume-file-flume。 ,flume-flume-console1,flume-netcat-flume。 -flume-logger.conf,flume2-netcat-flume.conf,flume1-logger-flume.conf。
文章目录 日志采集框架Flume介绍 概述 运行机制 Flume采集系统结构图 Flume安装部署 上传安装包 解压安装包 配置文件 在一个完整的离线大数据处理系统中,除了 hdfs+mapreduce 日志采集框架Flume介绍 概述 Flume是一个分布式、可靠和高可用的海量日志采集、聚合和传输的系统。 一般的采集需求,通过Flume的简单配置即可实现。 Flume针对特殊场景也具有良好的自定义扩展能力。 因此,Flume可以适用于大部分的日常数据采集场景。 Flume安装部署 上传安装包 apache-flume-1.8.0-bin.tar.gz ? 配置文件 cd /export/servers/ cd apache-flume-1.8.0-bin/conf/ cp flume-env.sh.template flume-env.sh vim flume-env.sh
sinks.k1.channel=c1 a1.sinks.k1.hdfs.useLocalTimeStamp=true a1.sinks.k1.hdfs.path=hdfk://hadoop01:9000/flume memeory 第3步:配置数据通道 define the channel c1 a1.channels.c1.type = file a1.channels.c1.checkpointDir=~/flume /flumeCheckpoint a1.channels.c1.dataDirs=~/flume/flumeData , ~/flume/flumeDataExt a1.channels.c1.capacity
Flume定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 ? Flume基础架构 ? Source Source是负责接收数据到Flume Agent的组件。 Sink Sink不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个Flume Agent。 Event 传输单元,Flume数据传输的基本单元,以Event的形式将数据从源头送至目的地。 Flume的核心概念 source : 用户需要根据自己的数据源的类型,选择合适的source对象。 sink: 用户需要根据自己的数据存储的目的地的类型,选择合适的sink对象。
Flume支持定制各类数据发送方,用于收集各类型数据;同时,Flume支持定制各种数据接受方, 用于最终存储数据。一般的采集需求,通过对flume的简单配置即可实现。 因此,flume可以适用于大部分的日常数据采集场景。 当前Flume有两个版本。 Flume 0.9X版本的统称Flume OG(original generation),Flume1.X版本的统称Flume NG(next generation)。 改动的另一原因是将Flume纳入 apache 旗下,Cloudera Flume 改名为 Apache Flume。 二、Flume安装部署 Flume的安装非常简单 上传安装包到数据源所在节点上 然后解压 tar -zxvf apache-flume-1.8.0-bin.tar.gz 然后进入flume的目录,修改
Flume的安装与综合使用 https://www.jianshu.com/p/90e17b80f366 实时日志采集框架图 ? Flume + Kafka整合.png 1.在$FLUME_HOME/conf下新增一个配置文件avro-memory-kafka.conf avro-memory-kafka.sources = avro-source kafka sink.png 3.先启动avro-memory-kafka监听 flume-ng agent \ --name avro-memory-kafka \ --conf $FLUME_HOME /conf \ --conf-file $FLUME_HOME/conf/avro-memory-kafka.conf \ -Dflume.root.logger=INFO,console 4.然后启动 exec-memory-avro.conf flume-ng agent \ --name exec-memory-avro \ --conf $FLUME_HOME/conf \ --conf-file
flume学习笔记 一、什么是Flume? 二、flume特性 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。 一般的采集需求,通过对flume的简单配置即可实现 Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景 三、flume组件解析 对于每一个Agent来说,它就是一共独立的守护进程(JVM),它从客户端接收数据 1、Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成 将flume-env.sh.template 改为 flume-env.sh 在里面配置JAVA_HOME 五、测试 创建一个myconf文件夹,在里边写配置文件
Flume agent的配置保存在配置文件中,同一个文件中可以同时配置多个agent。每个agent都需要配置source、channel、sink的信息。 source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 启动服务 输入以下命令: flume-ng /conf/example.file -Dflume.root.logger=DEBUG,console 参数说明: -n 指定agent名称(与配置文件中代理的名字相同) -c 指定flume image.png 然后再flume控制台就可以看到输出的结果: ? image.png
扫码关注腾讯云开发者
领取腾讯云代金券