Flume
  hKj4Sm9ejVao 2023年11月02日 76 0


概述

  • Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
  • Flume可以采集文件,socket数据包、文件、文件夹、kafka等各种形式源数据,又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中
  • 一般的采集需求,通过对flume的简单配置即可实现
  • Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景

应用

  • source:
  • taildir:实时读取文件的信息,并且支持断点续存
  • avro:flume:之间的传输,一般跟avro sink 并用
  • nc:接收网络端口
  • exec:可用于监控文件,不支持断点续存
  • spooling:监控文件夹,支持断点续存
  • kafka:
  • channel:
  • file:读写慢 ,安全,可以索引
  • memory:读写快,容易丢数据
  • kafka:
  • sink:
  • hdfs:
  • kafka:
  • avro
  • 完整配置(flume>>kafka)
//定义组件
a1.sources = r1 f1
a1.channels = c1
//配置sources
# Describe/configure the source
a1.sources.r1.type = TALLDIR
a1.sources.r1.filegroups = f1
a1.sources.r1.filegroups.f1 = 填写需要监控的文件
a1.sources.r1.positionFile = /usr/local/flume/taildir_position.json

//配置channel
# Use a channel which buffers events in memory
a1.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
a1.channels.c1.kafka.bootstrap.servers = hadoop-master:9092,hadoop-slave1:9092,hadoop-slave2:9092
a1.channels.c1.kafka.topic = topic_logv
a1.channels.c1.parseAsFlumeEvent = false //不以FlumeEvent的形式写入
//组装
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
  • 运行
flume bin/flume-ng agent -c conf/ -f 配置文件路径 -n a1 -Dflume.root.logger=info,console
  • 启动一个kafka的消费
kafka-console-consumer.sh --bootstrap-server hadoop-master:9092 --topic topic_log
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
hKj4Sm9ejVao
作者其他文章 更多

2023-11-02