一、
flume是分布式的,可靠的,用于从不同的来源有效收集 聚集 和 移动 大量的日志数据用以集中式的数据存储的系统。
二、
安装
tar -zxvf flume.tar.gz
三、source
1.测试
cd ./conf
vim template11.conf
#命名Agent a1的组件
a1.sources = r1
a1.sinks = k1
a1.channels = c1
#描述/配置Source
a1.sources.r1.type = netcat
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 44444
#描述Sink
a1.sinks.k1.type = logger
#描述内存Channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
#为Channle绑定Source和Sink
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
cd ../bin
./flume-ng agent --conf ../conf --conf-file ../conf/template1.conf --name a1 -Dflume.root.logger=INFO,console
客户端
telnet 192.168.76.131 44444
ctrl + ] 然后回车,输入的内容可见,否则,输入的内容不可见
输入内容:hello study ,回车 ,
服务端
有内容输出 接收到 hello study
2.监控指定目录
vim template2.conf
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = spooldir
a1.sources.r1.spoolDir = /usr/local/software/flume/data
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
若目录中有文件新增,则输入文件内容
五、channel
缓冲池,接收 source 传输的数据并缓存
六、sinks
取出 channel 中的数据
七、
描述:
向 机器 1 ,发送请求, 机器 1 传输给 2 ,2 传输给 3 ,3 在控制台输出
分析:
机器1
source : http ,由于发起的是 http 请求
channel : memoryChannel
sinks : avro
机器2
source : avro
channel : memoryChannel ,无特殊要求
sinks = avro
机器3
source : avro
channel : memoryChannel
sinks : logger 控制台打印
配置:
linux01
cd flume/conf
vim template3.conf
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = http
a1.sources.r1.port = 44444
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = 192.168.76.134
a1.sinks.k1.port = 44444
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
配置linux02
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 44444
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = 192.168.76.132
a1.sinks.k1.port = 44444
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
配置 linux03
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 44444
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
依次启动服务
./flume-ng agent --conf ../conf --conf-file ../conf/template3.conf --name a1 -Dflume.root.logger=INFO,console
由依赖关系可知, linux01 需等待 linux02 ,linux02 需等待 linux03 ,
所以先从 linux03 开始启动
测试:
curl -X post -d '[{"headers":{"a":"a1","b":"b1"},"body":"hello-http-flume"}]' http://192.168.76.131:44444
结果:
linux 03 接收到 发送的数据
八、扇入实例
linux01 linux02 均向 linux03 发送数据
linux01
source: http
channel:memoryChannel
sinks = avro
linux02:同上
linux03:
source :avro
channel:memoryChannel
sinks = logger
九、扇出实例
linux01 向 linux02 linux03 发送数据
linux02 03
source : avro
channel : memoryChannel
sinks : logger
linux01
配置两个sinks 两个 channel
linux01
a1.sources = r1
a1.sinks = k1 k2
a1.channels = c1 c2
a1.sources.r1.type = http
a1.sources.r1.port = 44444
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = 192.168.76.132
a1.sinks.k1.port = 44444
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = 192.168.76.134
a1.sinks.k2.port = 44444
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.channels.c2.type = memory
a1.channels.c2.capacity = 1000
a1.channels.c2.transactionCapacity = 100
a1.sources.r1.channels = c1 c2
a1.sinks.k1.channel = c1
a1.sinks.k2.channel = c2
linux02 linux03
发送数据:
新开标签页,向linux01 发送数据
curl -X post -d '[{"headers":{"a":"a1","b":"b1"},"body":"hello-http-flume"}]' http://192.168.76.131:44444
结果:
linux02 linux03 均接收到数据
九、
hdfs sinks
配置:
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=hdfs://0.0.0.0:9000/ppp
启动 hdfs
cd /haddop/bin
start-dfs.sh
启动flume
curl -X post -d '[{"headers":{"a":"a1","b":"b1"},"body":"hello-http-flume"}]' http://192.168.76.131:44444
在
http://192.168.76.131:50070/explorer.html#/flume/data
访问查看传输的文件
十、selector 选择器
扇出时,数据时复制发送,即同时发给扇出接收方,数据时复制的,
现在判断将哪些数据发送给指定的接收方
a1.sources = r1
a1.channels = c1 c2 c3 c4
a1.sources.r1.selector.type = multiplexing
a1.sources.r1.selector.header = state
a1.sources.r1.selector.mapping.CZ = c1
a1.sources.r1.selector.mapping.US = c2 c3
a1.sources.r1.selector.default = c4
配置说明:
当 state = cz 时 ,发送给 缓冲池 c1 ,默认发送 缓冲池 c4
selector 配置在 source 上
配置:
linux01
a1.sources = r1
a1.sinks = k1 k2
a1.channels = c1 c2
a1.sources.r1.type = http
a1.sources.r1.port = 44444
a1.sources.r1.selector.type = multiplexing
a1.sources.r1.selector.header = gender
a1.sources.r1.selector.mapping.male = c1
a1.sources.r1.selector.mapping.female = c2
a1.sources.r1.selector.default = c1
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = 192.168.76.132
a1.sinks.k1.port = 44444
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = 192.168.76.134
a1.sinks.k2.port = 44444
linux02 03 同扇出的配置
测试:
curl -X post -d '[{"headers":{"gender":"male"},"body":"hello-http-flume"}]' http://192.168.76.131:44444
只有
- 大小: 8.2 KB
- 大小: 2 KB
- 大小: 12 KB
- 大小: 9.4 KB
分享到:
相关推荐
### Flume 1.6.0 入门详解:安装、部署及案例分析 #### 一、Flume 概述 Flume 是 Cloudera 开发的一款高效、可靠且易于扩展的日志收集系统,适用于大数据环境下的日志采集任务。Flume 的初始版本被称为 FlumeOG...
尚硅谷大数据技术之Flume Flume 是 Cloudera 提供的一个高可用的、 高可靠的、分布式的海量日志采集、聚合和传输的系统。 Flume 基于流式架构,灵活简单。 1.1 Flume 定义 Flume 是一个高可用的、 高可靠的、...
Flume-NG 安装与配置指南 Flume-NG 是一个分布式日志收集系统,能够从各种数据源中实时采集数据,并将其传输到集中式存储系统中。本文将指导您完成 Flume-NG 的安装和基本配置。 安装 Flume-NG 1. 先决条件:...
Apache Flume 是一个分布式、可靠且可用的数据收集系统,用于高效地聚合、移动和加载大量日志数据到集中式存储系统,如Hadoop HDFS。它设计为容错性强,可扩展,允许从多个源收集数据,并将其流向目标,如数据仓库或...
Flume-ng 在 Windows 环境搭建并测试 + Log4j 日志通过 Flume 输出到 HDFS Flume-ng 是一个高可用、可靠、分布式的日志聚合系统,可以实时地从各种数据源(如日志文件、网络 socket、数据库等)中收集数据,并将其...
【Flume】 Flume是Apache Hadoop项目的一部分,专门设计用于高效地收集、聚合和移动大规模日志数据。它的核心架构基于事件流,具备分布式、高可靠性和高可用性。Flume通过agent来实现数据采集,每个agent包含source...
**大数据Ambari之flume集成编译好的源码包** Apache Ambari 是一个用于管理和监控Hadoop集群的开源工具,它提供了直观的Web界面和RESTful API,使得安装、配置、管理Hadoop生态系统变得更加简单。Flume是Apache的一...
Flume 是 Apache 开源项目提供的一款分布式、可靠且可用于有效收集、聚合和移动大量日志数据的工具。它设计用于高可用性和高可靠性,使得在大数据环境中处理流式数据变得简单。在描述中提到的问题是关于 Flume 不...
在大数据实时处理领域,Flume、Kafka 和 Spark Streaming 是常用的数据采集、传输与处理工具。本实验报告详细阐述了如何将这三个组件结合使用,构建一个高效的数据流处理系统。 一、Flume 与 Spark Streaming 的...
### Flume+kafka+Storm整合知识点详解 #### 一、Flume、Kafka与Storm概述 在大数据领域,数据采集、传输与实时处理是至关重要的环节。本篇内容重点介绍了如何利用Flume、Kafka与Storm这三个开源工具实现一套完整的...
Apache Flume 是一个分布式、可靠且可用的数据收集系统,用于高效地聚合、移动大量日志数据。Flume 提供了简单灵活的架构,允许数据在多个数据源和数据接收器之间流动。它被广泛应用于大数据处理环境,尤其适合监控...
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可...
Apache Flume 是一个分布式、可靠且可用于有效收集、聚合和移动大量日志数据的系统。它设计用于处理和传输大规模的日志数据,是大数据生态系统中的重要组件,常用于实时流数据处理。Apache Flume 1.9.0 版本是该软件...
《Flume、MySQL与Kafka的数据同步实践》 在大数据处理领域,实时数据流的采集、传输和存储是至关重要的环节。Apache Flume作为一个高效、可靠且可扩展的数据收集系统,广泛应用于日志聚合和数据传输。而MySQL作为...
Flume从1.5.0版本开始,重构了其内部架构,核心组件、配置以及代码架构都进行了重大改动,这个新版本被称为Flume NG(Next Generation),即Flume的新一代版本,用以替代了原来的Flume OG(Original Generation)。...
基于Kafka+Flume实时采集Oracle数据到Hive中 一、Kafka获取Oracle日志实时数据 Kafka是一种分布式流媒体平台,能够实时地从Oracle数据库中提取日志信息。为了实现这一点,需要先安装ZooKeeper和Kafka,然后配置...
在大数据处理领域,Flume 和 Spark Streaming 是两个重要的工具,它们分别用于数据收集与实时流处理。本压缩包中的 jar 包是为了解决 Flume 与 Spark Streaming 的集成问题,确保数据能够从 Flume 无缝流转到 Spark ...
标题中的“利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka”是一项数据集成任务,涉及Apache Flume、MySQL数据库、Hadoop Distributed File System (HDFS) 和Apache Kafka这四个关键技术。Flume是Apache的一...
Flume-ng-sql-source-1.5.2是Apache Flume的一个扩展,它允许Flume从SQL数据库中收集数据。Apache Flume是一个分布式、可靠且可用于有效聚合、移动大量日志数据的系统。"ng"代表"next generation",表明这是Flume的...
在大数据处理领域,Flume和Kafka是两个重要的组件。Flume是一款由Apache开发的数据收集系统,用于高效、可靠地聚合、聚合和移动大量日志数据。而Kafka则是一个分布式流处理平台,用于构建实时数据管道和流应用。当...