`

flume

阅读更多
一、

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
分享到:
评论

相关推荐

    Flume1.6.0入门:安装、部署、及flume的案例

    ### Flume 1.6.0 入门详解:安装、部署及案例分析 #### 一、Flume 概述 Flume 是 Cloudera 开发的一款高效、可靠且易于扩展的日志收集系统,适用于大数据环境下的日志采集任务。Flume 的初始版本被称为 FlumeOG...

    尚硅谷大数据技术之Flume

    尚硅谷大数据技术之Flume Flume 是 Cloudera 提供的一个高可用的、 高可靠的、分布式的海量日志采集、聚合和传输的系统。 Flume 基于流式架构,灵活简单。 1.1 Flume 定义 Flume 是一个高可用的、 高可靠的、...

    flume-ng安装

    Flume-NG 安装与配置指南 Flume-NG 是一个分布式日志收集系统,能够从各种数据源中实时采集数据,并将其传输到集中式存储系统中。本文将指导您完成 Flume-NG 的安装和基本配置。 安装 Flume-NG 1. 先决条件:...

    apache-flume-1.8.0

    Apache Flume 是一个分布式、可靠且可用的数据收集系统,用于高效地聚合、移动和加载大量日志数据到集中式存储系统,如Hadoop HDFS。它设计为容错性强,可扩展,允许从多个源收集数据,并将其流向目标,如数据仓库或...

    Flume-ng在windows环境搭建并测试+log4j日志通过Flume输出到HDFS.docx

    Flume-ng 在 Windows 环境搭建并测试 + Log4j 日志通过 Flume 输出到 HDFS Flume-ng 是一个高可用、可靠、分布式的日志聚合系统,可以实时地从各种数据源(如日志文件、网络 socket、数据库等)中收集数据,并将其...

    47_Flume、Logstash、Filebeat调研报告

    【Flume】 Flume是Apache Hadoop项目的一部分,专门设计用于高效地收集、聚合和移动大规模日志数据。它的核心架构基于事件流,具备分布式、高可靠性和高可用性。Flume通过agent来实现数据采集,每个agent包含source...

    大数据Ambari之flume集成编译好的源码包

    **大数据Ambari之flume集成编译好的源码包** Apache Ambari 是一个用于管理和监控Hadoop集群的开源工具,它提供了直观的Web界面和RESTful API,使得安装、配置、管理Hadoop生态系统变得更加简单。Flume是Apache的一...

    flume hbanse2.0 lib

    Flume 是 Apache 开源项目提供的一款分布式、可靠且可用于有效收集、聚合和移动大量日志数据的工具。它设计用于高可用性和高可靠性,使得在大数据环境中处理流式数据变得简单。在描述中提到的问题是关于 Flume 不...

    flume kafak实验报告.docx

    在大数据实时处理领域,Flume、Kafka 和 Spark Streaming 是常用的数据采集、传输与处理工具。本实验报告详细阐述了如何将这三个组件结合使用,构建一个高效的数据流处理系统。 一、Flume 与 Spark Streaming 的...

    Flume+kafka+Storm整合

    ### Flume+kafka+Storm整合知识点详解 #### 一、Flume、Kafka与Storm概述 在大数据领域,数据采集、传输与实时处理是至关重要的环节。本篇内容重点介绍了如何利用Flume、Kafka与Storm这三个开源工具实现一套完整的...

    apache-flume-1.9.0-bin.tar.gz

    Apache Flume 是一个分布式、可靠且可用的数据收集系统,用于高效地聚合、移动大量日志数据。Flume 提供了简单灵活的架构,允许数据在多个数据源和数据接收器之间流动。它被广泛应用于大数据处理环境,尤其适合监控...

    Flume构建高可用、可扩展的海量日志采集系统

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可...

    apache-flume-1.9.0-bin.tar.zip

    Apache Flume 是一个分布式、可靠且可用于有效收集、聚合和移动大量日志数据的系统。它设计用于处理和传输大规模的日志数据,是大数据生态系统中的重要组件,常用于实时流数据处理。Apache Flume 1.9.0 版本是该软件...

    flume-mysql.zip

    《Flume、MySQL与Kafka的数据同步实践》 在大数据处理领域,实时数据流的采集、传输和存储是至关重要的环节。Apache Flume作为一个高效、可靠且可扩展的数据收集系统,广泛应用于日志聚合和数据传输。而MySQL作为...

    Flume集群环境搭建,flume监控

    Flume从1.5.0版本开始,重构了其内部架构,核心组件、配置以及代码架构都进行了重大改动,这个新版本被称为Flume NG(Next Generation),即Flume的新一代版本,用以替代了原来的Flume OG(Original Generation)。...

    kafka+flume 实时采集oracle数据到hive中.docx

    基于Kafka+Flume实时采集Oracle数据到Hive中 一、Kafka获取Oracle日志实时数据 Kafka是一种分布式流媒体平台,能够实时地从Oracle数据库中提取日志信息。为了实现这一点,需要先安装ZooKeeper和Kafka,然后配置...

    Flume对接Spark Streaming的相关jar包

    在大数据处理领域,Flume 和 Spark Streaming 是两个重要的工具,它们分别用于数据收集与实时流处理。本压缩包中的 jar 包是为了解决 Flume 与 Spark Streaming 的集成问题,确保数据能够从 Flume 无缝流转到 Spark ...

    利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka

    标题中的“利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka”是一项数据集成任务,涉及Apache Flume、MySQL数据库、Hadoop Distributed File System (HDFS) 和Apache Kafka这四个关键技术。Flume是Apache的一...

    flume-ng-sql-source-1.5.2

    Flume-ng-sql-source-1.5.2是Apache Flume的一个扩展,它允许Flume从SQL数据库中收集数据。Apache Flume是一个分布式、可靠且可用于有效聚合、移动大量日志数据的系统。"ng"代表"next generation",表明这是Flume的...

    flume与kafka整合需要的jar包

    在大数据处理领域,Flume和Kafka是两个重要的组件。Flume是一款由Apache开发的数据收集系统,用于高效、可靠地聚合、聚合和移动大量日志数据。而Kafka则是一个分布式流处理平台,用于构建实时数据管道和流应用。当...

Global site tag (gtag.js) - Google Analytics