日志采集传输框架之 Flume,将监听端口数据发送至Kafka

1、简介        

        Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传
输的系统。Flume 基于流式架构,主要有以下几个部分组成。

 主要组件介绍:

1)、Flume Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的。Agent 主要有 3 个部分组成, Source 、 Channel 、 Sink 。

2)、Source 是负责接收数据到 Flume Agent 的组件。 Source 组件可以处理各种类型、各种
格式的日志数据,包括 avro 、 thrift 、 exec 、 jms 、netcat 、 taildir 、syslog 、 http 。

3)、Sink 不断地轮询 Channel 中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个 Flume Agent 。Sink 组件目的地包括 hdfs、logger、avro 、 thrift、file 、 HBase 、 solr 、自定义。

4)、Channel 是位于 Source 和 Sink 之间的缓冲区。因此, Channel 允许 Source 和 Sink 运作在不同的速率上。 Channel 是线程安全的,可以同时处理几个 Source 的写入操作和几个Sink 的读取操作。Flume 自带两种 Channel Memory Channel File Channel
        Memory Channel:是内存中的队列。 Memory Channel 在不需要关心数据丢失的情景下适用。如果需要关心数据丢失,那么 Memory Channel 就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。
        File Channel:将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。

5)、Event 传输单元,Flume 数据传输的基本单元,以 Event 的形式将数据从源头送至目的地。Event 由 Header 和 Body 两部分组成, Header 用来存放该 event 的一些属性,为 K-V 结构、Body 用来存放该条数据,形式为字节数组。

2、下载安装

下载地址:Download — Apache Flume

本文下载安装包为:apache-flume-1.11.0-bin.tar.gz

解压安装

# 解压到指定目录
tar -zxvf apache-flume-1.11.0-bin.tar.gz -C /opt/software
 3、案例        

        使用监听端口数据,发送到kafka中。Kafka 集群搭建启动参考博客:kafka丢弃zookeeper,使用kraft架构-CSDN博客

3.1、创建Flume agent 配置文件 vim flume-netcat-kafka.conf:
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = 192.168.30.90
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = topic1
a1.sinks.k1.kafka.bootstrap.servers = 192.168.30.88:9092,192.168.30.89:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks.k1.kafka.producer.linger.ms = 1
a1.sinks.k1.kafka.producer.compression.type = snappy
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
3.2、安装 netcat 工具
# 安装 netcat 工具
yum install -y nc
3.3、启动flume
# 1、第一种方式
bin/flume-ng agent --conf conf/ --name a1 --conf-file test/flume-netcat-kafka.conf -
Dflume.root.logger=INFO,console
# 2、第二种方式
bin/flume-ng agent -c conf/ -n a1 -f test/flume-netcat-kafka.conf -Dflume.root.logger=INFO,console

参数说明:

1)、--conf/-c:表示配置文件存储在conf/目录;
2)、--name/-n:表示给agent 起名为a1;
3)、--conf-file/-f:flume 本次启动读取的配置文件是在 test 文件夹下的 flume-netcat-kafka.conf 文件。
4)、-Dflume.root.logger=INFO,console :-D 表示flume 运行时动态修改 flume.root.logger 参数属性值,并将控制台日志打印级别设置为INFO 级别。日志级别包括:log、info、warn、error。

3.4、测试
3.4.1、启动监听44444端口
nc 192.168.30.90 44444
3.4.2、启动 Kafka 消费者控制台
bin/kafka-console-consumer.sh --bootstrap-server 192.168.30.88:9092 --topic topic1 --from-beginning
3.4.3、结果展示

4、总结 

        本文详细介绍 flume 组件各个模块的含义,并且实现从监听端口数据发送至Kafka案例,帮助大家快速掌握flume的使用。关于flume 如何自定义 Source 和 Sink,将在后续博客中更新。

        本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/324033.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot异常处理(Whitelabel Error Page和自定义全局异常处理页面)和整合ajax异常处理

SpringBoot异常处理(Whitelabel Error Page和自定义全局异常处理页面)和整合ajax异常处理 1、springboot自带的异常处理页面Whitelabel Error Page SpringBoot默认的处理异常的机制:SpringBoot 默认的已经提供了一套处理异常的机制。一旦程…

继钱江之后,赛科龙也出自动挡?RA401自动挡曝光

QJ在发动赛921的当天,还有一台闪300搭载了自动挡,当天的热度高的离谱,并且后续也经常有人问,这自动挡啥时候上市等等,相信有很多人都想要一台排量大一点的自动挡摩托车,而最新的消息赛科龙也在开发一台&…

文本分类的一些记录

背景 过去工作中最常遇到的问题就是文本分类和实体抽取的任务。其中文本分类是自然语言处理中最基础的任务,指的是将文本打上特定的类别标签,以做区分和筛选。文本分类主要流程一般是:先预处理文本,再提取特征,最后通…

PDF修改技巧之:如何简单方便的编辑PDF文件?

在当今精通技术的世界中,PDF 的使用已变得普遍,尤其是在商业和教育方面。如果您在审阅 PDF 文件时遇到语法或其他错误怎么办? 尽管 PDF 文件不像 Word 或在线文档那样容易编辑,但借助高级工具,您一定可以进行编辑。 …

鸿蒙 ArkUI - 常用组件和布局

目录 一、组件 1.按钮 2.单选框 3.切换按钮 4.进度条 5.文本 6.文本输入框 二、布局方式 1.线性布局 2.层叠布局 3.弹性布局 4.网格布局 一、组件 ArkUI有丰富的内置组件,包括文本、按钮、图片、进度条、输入框、单选框、多选框等。我们还可以将基础组件…

HCIA基础知识

IP地址、静态路由、动态路由、交换机 OSPF RIP DHCP VLAN ACL NAT OSI TCP/IP UDP TCP 三次握手,四次挥手,报头 什么是网络? 由网络连接设备通过传输介质将网络终端设备连接起来,进行资源共享、信息传递的平台。 OSI七…

【电子取证篇】蘇小沐的电子取证工具合集在线文档

【电子取证篇】蘇小沐的电子取证工具合集在线文档 弄成了在线表格,记得及时保存;工具永远只是辅助,但不要过多依赖自动化,有难度说明可以提升,既要不断学习也要不停思考,知行合一—【蘇小沐】 【腾讯文档…

202405读书笔记|《作家榜名著:宋词三百首(马未都亲笔推荐版)》——绿酒初尝人易醉,一枕小窗浓睡

《作家榜名著:宋词三百首(马未都亲笔推荐版)》画很美,词也是😘😘,既廖远又色彩明艳,丰富而丰盈,看的很欢乐的一本书。部分节选如下: 艳溢香融 天遥地远&…

智能搬运机器人作为一种新型的物流技术

随着物流行业的快速发展,货物转运的效率和准确性成为了企业竞争的关键因素之一。智能搬运机器人作为一种新型的物流技术,已经在许多企业中得到了广泛应用。本文将介绍富唯智能智能搬运机器人在物流行业的应用和优势。 在实际应用中,智能搬运机…

如何在Eclipse IDE中安装TestNG插件

目录 使用Eclipse Marketplace安装TestNG插件 通过输入URL安装TestNG 1.点击安装新软件 2.输入URL以安装TestNG 3.遵循正常的安装过程 4.重新启动Eclipse 在Eclipse中安装TestNG插件的视频 在这篇文章中,我们将介绍如何在Eclipse IDE中安装TestNG插件&#x…

基于算术电路的全同态加密方案介绍

基于算术电路的全同态加密方案介绍 摘 要: 云计算技术目前已经发展得相对成熟,应用也逐步得到普及,它所具有的强大的数据处理能力,能够帮助个体用户计算复杂的数据。但它带来便利的同时,也催生了一系列用户隐私数据保…

网络安全全栈培训笔记(53-WEB攻防-通用漏洞CRLF注入URL重定向资源处理拒绝服务)

第53天 WEB攻防-通用漏洞&CRLF注入&URL重定向&资源处理拒绝服务 知识点: 1、CRLF注入-原理&检测&利用 2、URL重定向-原理&检测&利用 3、Web拒绝服务-原理&检测&利用 #下节预告: 1、JSONP&CORS跨域 2、域名安全…

HCIP ISIS实验

拓扑图&IP划分如下图: 第一步,配置IP地址&环回地址 以R1为例,R2~R8同理 interface GigabitEthernet 0/0/0 ip address 18.1.1.1 24 interface GigabitEthernet 0/0/1 ip address 12.1.1.1 24 interface LoopBack 0 ip address 1.1.…

代码训练营Day.34 | 1005. K次取反后最大化的数组和、134. 加油站、135. 分发糖果

1005. K次取反后最大化的数组和 1. LeetCode链接 1005. K 次取反后最大化的数组和 - 力扣(LeetCode) 2. 题目描述 3. 解法 整体来说,就是把负数全部取反,然后如果有剩余反转次数都给绝对值最小的数。 我的解法:先…

浅谈专项测试之弱网络测试

一.弱网络测试背景 移动端产品的使用并非完全都是在流畅的wifi环境,大部分用户主要使用4G,3G,2G等网络,另外因为移动端产品使用的场景多变,如进公交,上地铁,坐电梯,使得弱网测试显得尤为重要。考…

HTML--JavaScript--引入方式

啊哈~~~基础三剑看到第三剑,JavaScript HTML用于控制网页结构 CSS用于控制网页的外观 JavaScript用于控制网页的行为 JavaScript引入方式 引入的三种方式: 外部JavaScript 内部JavaScript 元素事件JavaScript 引入外部JavaScript 一般情况下网页最好…

8个 Python 开发者必备的 PyCharm 插件

这8个顶级插件保证了更快、更轻松、更愉悦的开发过程。 在 PyCharm 插件列表中,我们发现了几个瑰宝插件,它们各自以独特的方式帮助开发者快速、简便、愉悦地开发。 今天我就给大家逐个介绍它们。 1. Key Promoter X 【下载链接】:https://…

OWASP漏洞原理启航(第一课)

OWASP Top 10 2021 介紹 漏洞原理启航介绍 OWASP 定义: AI介绍 OWASP (开放Web应用程序和安全项目) 是一个全球性的社区,致力于提供关于Web应用程序安全性的信息、教育和支持。OWASP是一个非盈利组织,由志愿者驱动,旨在提高Web应…

day-10 删除排序链表中的重复元素

思路 先统计每个值出现的次数,然后将出现次数为一的节点链接为一个链表即可 解题方法 while(t!null){ //统计每个值出现次数 arr[t.val100]1; tt.next; } while(t!null&&arr[t.val100]!1) tt.next;//确定返回的头结点 ttt; while(t!null&&t.next…

2024年全网最全春招时间线

2024年全网最全春招时间线 春招,许多同学可能会误以为这是春天才会进行。 你可能会想,期末刚考完试,先享受下寒假,再欢度春节,收些红包,甚至还能抽空去理个发型。等到春日明媚时,再参加春招活…