【Flume 01】Flume简介、部署、组件

这篇具有很好参考价值的文章主要介绍了【Flume 01】Flume简介、部署、组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 Flume简介

【Flume 01】Flume简介、部署、组件,大数据,flume,大数据

  • Flume是一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统

  • 主要特性:

    1. 它有一个简单、灵活的基于流的数据流结构(使用Event封装)
    2. 具有负载均衡机制和故障转移机制
    3. 一个简单可扩展的数据模型(Source、Channel、Sink)
  • Source组件:

    1. 从外界采集各种类型数据,将数据传递给Channel
    2. 支持类型有文件、目录、端口、Kafka等
    3. Exec Source:实现文件监控;注意 tail -F(跟踪文件) 和 tail -f 的区别
    4. NetCat TCP/UDP Source: 采集指定端口(tcp、udp)的数据
    5. Spooling Directory Source:采集文件夹里新增的文件
    6. Kafka Source:从Kafka消息队列中采集数据
  • Channel组件:

    1. 接受Source发出的数据,临时存储
    2. 支持类型有内存、文件,内存+文件、JDBC等
    3. Memory Channel:使用内存作为数据的存储,内存有限,临时存储
    4. File Channel:使用文件来作为数据的存储
    5. Spillable Memory Channel:使用内存和文件作为数据存储(即先存到内存中,如果内存中数据达到阈值再flush到文件中)
  • Sink组件:

    1. 从Channel中读取数据并存储到指定目的地
    2. 表现形式:控制台、HDFS、Kafka等
    3. 注意:Channel中的数据直到进入目的地才会被删除,当Sink写入失败后,可以自动重写,不会造成数据丢失
    4. Logger Sink:将数据作为日志处理
    5. HDFS Sink:将数据传输到HDFS中
    6. Kafka Sink:将数据发送到kafka消息队列中

2 Flume部署

访问flume下载地址,下载apache-flume-1.9.0-bin.tar.gz安装包,在/data/soft目录下解压

2.1 修改flume-env.sh文件

cd /data/soft/apache-flume-1.9.0-bin/conf
mv flume-env.sh.template flume-env.sh

将flume-env.sh.template剪切放到flume-env.sh中

2.2 示例

# example.conf: A single-node Flume configuration

# Name the components on this agent 定义组件名称
# 这里定义了一个agent(代理)名为a1,包含了一个source(数据源)r1,一个sink(数据汇)k1,以及一个channel(通道)c1。
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source 配置数据源
# 这里设置数据源r1的类型为netcat(通过网络接收数据),绑定的IP地址为0.0.0.0,监听端口为44444。
a1.sources.r1.type = netcat
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 44444

# Describe the sink 配置数据汇
# 这里设置数据汇k1的类型为logger(打印日志)。
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory 配置通道
# 这里设置通道c1的类型为memory(内存缓冲区),容量为1000,事务容量为100。
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel 绑定数据源和数据汇到通道:
# 这里将数据源r1绑定到通道c1,将数据汇k1绑定到通道c1。
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

这段代码是一个单节点的Flume配置文件,用于将网络上的数据通过netcat source接收,并通过logger sink输出到日志中。

通过这个配置文件,Flume Agent将会监听44444端口上的网络流量,并将收到的数据通过logger sink输出到日志中。通道c1将以内存缓冲的方式在数据源和数据汇之间传递数据。

执行命令:

cd /data/soft/apache-flume-1.9.0-bin
bin/flume-ng agent --conf conf --conf-file conf/example.conf --name a1 -Dflume.root.logger=INFO,console

该命令是用于启动 Apache Flume 的代理(agent)。以下是对各个部分的解释:

  • bin/flume-ng: 这是 Flume 的启动脚本,用于执行 Flume 的命令。
  • agent: 表示要启动的 Flume 组件是一个代理(agent)。
  • --conf conf: 指定 Flume 配置文件的目录,即 conf 目录。
  • --conf-file conf/example.conf: 指定 Flume 使用的配置文件路径,这里的路径是 conf/example.conf
  • --name a1: 给代理(agent)指定一个名称,此处为 a1
  • -Dflume.root.logger=INFO,console: 设置 Flume 的日志级别为 INFO,并将日志输出到控制台。

综上所述,该命令将使用指定的配置文件(conf/example.conf)启动一个名为 a1 的 Flume 代理(agent),并将日志输出到控制台。

开启另一个Terminal,执行远程连接命令,并输入传输内容:

telnet localhost 44444

telnet localhost 44444 是一条命令,用于在本地主机上使用 Telnet 协议连接到端口号为 44444 的服务。

Telnet 是一种远程登录协议,允许你通过网络(通常是互联网)与其他计算机建立终端会话。在这种情况下,你正在尝试连接到本地主机(localhost)上的 44444 端口。

如果 44444 端口上有运行并配置为接受 Telnet 连接的服务,该命令将建立与该服务的连接。然而,如果该端口上没有运行任何服务,或者被防火墙阻止,连接尝试将失败。

一旦 Telnet 会话建立,你可以使用基于文本的命令与远程服务进行交互。

3 高级组件

相关配置需要参考官方文档

  • Source Interceptors:Source可以指定一个或者多个拦截器按先后顺序依次对采集到的数据进行处理

  • Channel Selectors:Source发往多个Channel的策略设置

  • Sink Processors:Sink发送数据的策略设置

  • Event:

    1. Event是Flume传输数据的基本单位,也是事务的基本单位;在文本文件中,通常一行记录就是一个Event
    2. Event里有header和body;header类型为Map<String, String>
    3. 可以在Source中增加header的<key, value>,在Channel和Sink中使用header中的值

3.1 Source Interceptors

  • 常见Interceptors类型:Timestamp Interceptor、Host Interceptor、Search and Replace Interceptor 、Static Interceptor、Regex Extractor Interceptor等

3.2 Channel Selectors

  • Channel Selectors类型包括:Replicating Channel Selector(default)和Multiplexing Channel Selector
  • Replicating:会将Source采集过来的Event发往所有Channel
  • Multiplexing:会根据Event中header里面的值,将Event发往不同的Channel

3.3 Sink Processors

  • Sink Processors类型包括:Default Sink Processor、Load balancing Sink Processor和Failover Sink Processor
  • Default:是默认的不用配置sinkgroup;Load balancing是负载均衡;Failover是故障转移,后面需要定义sinkgroup

4 性能优化

  • Flume优化

    1. 调整Flume进程的内存大小,建议设置1G~2G,内存设置太小可能导致频繁GC
    2. 启动多个Flume进程时,建议修改配置区分日志文件,复制多个conf目录,修改log4j.properties文件
  • Flume进程监控文章来源地址https://www.toymoban.com/news/detail-601677.html

    1. Flume是一个单进程程序,会存在单点故障,所以需要有一个监控机制,发现Flume进程Down掉之后,需要重启
    2. 通过Shell脚本使用jps命令对Flume进程进行监控、告警之后并自动重启

到了这里,关于【Flume 01】Flume简介、部署、组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flume组件以及通过命令监控大数据平台转态

    可 以 从 官 网 下 载 Flume 组 件 安 装 包 , 下 载 地 址 如 下 URL 链 接 所 示 https://archive.apache.org/dist/flume/1.6.0/ 步骤一:使用 root 用户设置 Flume 环境变量,并使环境变量对所有用户生效。 步骤二:修改 Flume 相应配置文件。 首先,切换到 hadoop 用户,并切换当前工作目录到

    2023年04月24日
    浏览(34)
  • 大数据:Flume安装部署和配置

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

    2024年02月06日
    浏览(35)
  • (十九)大数据实战——Flume数据采集框架安装部署

    本节内容我们主要介绍一下大数据数据采集框架flume的安装部署,Flume 是一款流行的开源分布式系统,用于高效地采集、汇总和传输大规模数据。它主要用于处理大量产生的日志数据和事件流。Flume 支持从各种数据源(如日志文件、消息队列、数据库等)实时采集数据,并将

    2024年02月10日
    浏览(45)
  • Flume 简介及基本使用

    Apache Flume 是一个分布式,高可用的数据收集系统。它可以从不同的数据源收集数据,经过聚合后发送到存储系统中,通常用于日志数据的收集。Flume 分为 NG 和 OG (1.0 之前) 两个版本,NG 在 OG 的基础上进行了完全的重构,是目前使用最为广泛的版本。下面的介绍均以

    2024年02月07日
    浏览(35)
  • (二十四)大数据实战——Flume数据流监控之Ganglia的安装与部署

    本节内容我们主要介绍一下Flume数据流的监控工具Ganglia。Ganglia是一个开源的分布式系统性能监控工具。它被设计用于监视大规模的计算机群集(包括集群、网格和云环境),以便收集和展示系统和应用程序的性能数据。Ganglia 可以轻松地扩展到数千台计算机节点,并支持跨多

    2024年02月08日
    浏览(46)
  • 大数据平台组件日常运维操作说明(Hadoop/Zookeeper/Kafa/ES/Mysql/Spark/Flume/Logstash/Tomcat)

    hdfs 生产环境hadoop为30台服务器组成的集群,统一安装配置,版本号为2.7.7 部署路径:/opt/hadoop 启动用户:hadoop 配置文件: /opt/hadoop/config/hdfs-site.xml /opt/hadoop/config/core-site.xml hadoopy运行环境变量配置文件: hadoop-env.sh journalnode.env datanode.env namenode.env hadoop系统服务配置文件: z

    2024年02月03日
    浏览(47)
  • flume1.11.0安装部署

    上传;  解压; 进入conf目录,修改 flume-env.sh,配置 JAVA_HOME; 安装nginx; \\\"yum  update\\\"命令最后报错了,但好像没有影响nginx的安装,估计是版本兼容性问题,如下图; nginx命令; 启动nginx后,访问80端口; nginx网络80端口访问日志文件保存位置; 注意:网上说“在hadoop3.x之前需

    2024年02月09日
    浏览(44)
  • 基于Hadoop的MapReduce网站日志大数据分析(含预处理MapReduce程序、hdfs、flume、sqoop、hive、mysql、hbase组件、echarts)

    需要本项目的可以私信博主!!! 本项目包含:PPT,可视化代码,项目源码,配套Hadoop环境(解压可视化),shell脚本,MapReduce代码,文档以及相关说明教程,大数据集! 本文介绍了一种基于Hadoop的网站日志大数据分析方法。本项目首先将网站日志上传到HDFS分布式文件系统

    2024年02月16日
    浏览(61)
  • 在Windows下的flume 安装,部署及和kafka组合使用

    一,Windows下配置环境变量 此电脑-右键属性-系统-高级系统设置-环境变量 (1) 环境变量名:FLUME_HOME 变量值:就是安装的flume的路径 例如我自己的是:FLUME_HOME;E:flumeapache-flume-1.9.0-bin (2)在path变量中添加 %FLUME_HOME%conf;%FLUME_HOME%bin;然后依次保存我们所做的修改即可。 编

    2024年02月01日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包