一百九十一、Flume——Flume配置文件各参数含义(持续完善中)

2023-10-20 18:15

本文主要是介绍一百九十一、Flume——Flume配置文件各参数含义(持续完善中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、目的

在实际项目的开发过程中,不同Kafka主题的数据规模、数据频率,需要配置不同的Flume参数,而这一切的调试、配置工作,都要建立在对Flume配置文件各参数含义的基础上

二、Flume各参数及其含义

(一)filePrefix

1、含义:写入hdfs的文件名前缀,可以使用flume提供的日期及%{host}表达式

2、默认值为FlumeData

(二)fileSuffix

1、含义:写入hdfs的文件名后缀,比如.lzo .log .txt

(三)inUsePrefix(一般不用管)

1、含义:临时文件的文件名前缀,hdfs sink会先往目标目录中写临时文件,再根据相关规则重命名成最终目标文件

(四)inUseSuffix(一般不用管)

1、含义:临时文件的文件名后缀

2、默认值:.tmp

(五)rollInterval

1、含义:hdfs sink间隔多长将临时文件滚动成最终目标文件,单位:秒

2、默认值:30s

3、如果设置成0,则表示不根据时间来滚动文件

4、注意:滚动(roll)指的是,hdfs sink将临时文件重命名成最终目标文件,并新打开一个临时文件来写入数据

(六)rollSize

1、含义:当临时文件达到该大小(单位:bytes)时,滚动成目标文件

2、默认值:1024byte

3、 如果设置成0,则表示不根据临时文件大小来滚动文件

(七)rollCount

1、含义:当events数据达到该数量时候,将临时文件滚动成目标文件

2、默认值:10

3、如果设置成0,则表示不根据events数据来滚动文件

(八)idleTimeout

1、含义:当目前被打开的临时文件在该参数指定的时间(秒)内,没有任何数据写入,则将该临时文件关闭并重命名成目标文件

2、默认值:0

(九)batchSize

1、含义:每个批次刷新到HDFS上的events数量

2、默认值:100

(十)codeC

1、含义:文件压缩格式,包括:gzip, bzip2, lzo, lzop, snappy

(十一)fileType

1、含义:文件格式,包括:SequenceFile, DataStream,CompressedStream;默认值:SequenceFile

2、当使用DataStream时候,文件不会被压缩,不需要设置hdfs.codeC

3、当使用CompressedStream时候,必须设置一个正确的hdfs.codeC值

(十二)maxOpenFiles

1、含义:最大允许打开的HDFS文件数,当打开的文件数达到该值,最早打开的文件将会被关闭

2、默认值:5000

(十三)minBlockReplicas

1、含义:写入HDFS文件块的最小副本数

2、默认值:HDFS副本数(一般不修改,HDFS副本数默认为3)

3、 该参数会影响文件的滚动配置,一般将该参数配置成1,才可以按照配置正确滚动文件

(十四)writeFormat

1、含义:写sequence文件的格式

2、包含:Text, Writable(默认)

(十五)callTimeout

1、含义:执行HDFS操作的超时时间(单位:毫秒)

2、默认值:10000 (10s)

(十六)threadsPoolSize

1、含义:hdfs sink启动的操作HDFS的线程数

2、默认值:10

(十七)rollTimerPoolSize

1、含义:hdfs sink启动的根据时间滚动文件的线程数

2、默认值:1

(十八)kerberosPrincipal

1、含义:HDFS安全认证kerberos配置

(十九)kerberosKeytab

1、含义:HDFS安全认证kerberos配置

(二十)proxyUser

1、含义:代理用户

(二十一)channel

1、含义:管道

2、一个sink只能有一个管道,但一根管道可以有多个sink

(二十二)type

1、含义:类型

2、Source类型

3、Sink类型

4、Channel类型

(二十三)path

1、含义:写入hdfs的路径,需要包含文件系统标识,比如:hdfs://hurys23:8020/user/hive/warehouse/hurys_dc_ods.db/ods_turnratio/day=%Y-%m-%d/

2、可以使用flume提供的日期及%{host}表达式

(二十四)round

1、含义:是否启用时间上的”舍弃”,这里的”舍弃”,类似于”四舍五入”

2、如果启用,则会影响除了%t的其他所有时间表达式

3、默认值:false

(二十五)roundValue

1、含义:时间上进行“舍弃”的值

2、默认值:1

(二十六)roundUnit

1、含义:时间上进行”舍弃”的单位,包含:second,minute,hour

2、默认值:seconds

(二十七)timeZone

1、含义:时区

2、默认值:Local Time

(二十八)useLocalTimeStamp

1、含义:是否使用当地时间

2、默认值:flase

(二十九)closeTries

1、含义:hdfs sink关闭文件的尝试次数

2、默认值:0

3、如果设置为1,当一次关闭文件失败后,hdfs sink将不会再次尝试关闭文件,这个未关闭的文件将会一直留在那,并且是打开状态

4、如果设置为0,当一次关闭失败后,hdfs sink会继续尝试下一次关闭,直到成功

(三十)retryInterval

1、含义:hdfs sink尝试关闭文件的时间间隔

2、如果设置为0,表示不尝试,相当于于将hdfs.closeTries设置成1

3、默认值:180(秒)

(三十一)serializer

1、含义:序列化类型

2、其他还有:avro_event或者是实现了EventSerializer.Builder的类名

3、默认值:TEXT

(三十二)设置3个round相关参数用来控制多久生成一个文件

    #是否按照时间滚动文件夹
    a1.sinks.k1.hdfs.round = true
    #多少时间单位创建一个新的文件夹
    a1.sinks.k1.hdfs.roundValue = 10
    #重新定义时间单位
    a1.sinks.k1.hdfs.roundUnit = second

(三十三)设置时间戳、刷新频率以及文件类型

    #是否使用本地时间戳
    a1.sinks.k1.hdfs.useLocalTimeStamp = true
    #积攒多少个 Event 才 flush 到 HDFS 一次
    a1.sinks.k1.hdfs.batchSize = 100
    #设置文件类型,可支持压缩
    a1.sinks.k1.hdfs.fileType = DataStream

(三十四)设置下方三个条件,任意一个达到都会生成一个新的文件

    #多久生成一个新的文件
    a1.sinks.k1.hdfs.rollInterval = 60
    #设置每个文件的滚动大小大概是 1M
    a1.sinks.k1.hdfs.rollSize = 1024000
    #文件的滚动与 Event 数量无关
    a1.sinks.k1.hdfs.rollCount = 0

三、Flume配置文件案例

### Name agent, source, channels and sink alias
a1.sources = s1
a1.channels = c1
a1.sinks = k1

### define kafka source
a1.sources.s1.type = org.apache.flume.source.kafka.KafkaSource

# Maximum number of messages written to Channel in one batch
a1.sources.s1.batchSize = 5000

# Maximum time (in ms) before a batch will be written to Channel The batch will be written whenever the first of size and time will be reached.
a1.sources.s1.batchDurationMillis = 2000

# set kafka broker address
a1.sources.s1.kafka.bootstrap.servers = 192.168.0.27:9092

# set kafka consumer group Id and offset consume
# 官网推荐1.9.0版本只设置了topic,但测试后不能正常消费,需要添加消费组id(自己写一个),并定义偏移量消费方式
a1.sources.s1.kafka.consumer.group.id = evaluation_group
a1.sources.s1.kafka.consumer.auto.offset.reset = earliest

# set kafka topic
a1.sources.s1.kafka.topics = topic_b_evaluation


### defind hdfs sink

a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://hurys23:8020/user/hive/warehouse/hurys_dc_ods.db/ods_queue/day=%Y-%m-%d/
a1.sinks.k1.hdfs.filePrefix = queue
a1.sinks.k1.hdfs.fileSuffix = .log
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = second
a1.sinks.k1.hdfs.rollSize = 10240000
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.rollInterval = 0
a1.sinks.k1.hdfs.idleTimeout = 60
a1.sinks.k1.hdfs.minBlockReplicas = 1


### define channel from kafka source to hdfs sink
# memoryChannel:快速,但是当设备断电,数据会丢失
# FileChannel:速度较慢,即使设备断电,数据也不会丢失
a1.channels.c1.type = file
# 这里不单独设置checkpointDir和dataDirs文件位置,参考官网不设置会有默认位置
# channel store size
a1.channels.c1.capacity = 100000
# transaction size
a1.channels.c1.transactionCapacity = 10000


### 绑定source、channel和sink
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1

这篇关于一百九十一、Flume——Flume配置文件各参数含义(持续完善中)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/248838

相关文章

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文

使用Nginx配置文件服务器方式

《使用Nginx配置文件服务器方式》:本文主要介绍使用Nginx配置文件服务器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 为什么选择 Nginx 作为文件服务器?2. 环境准备3. 配置 Nginx 文件服务器4. 将文件放入服务器目录5. 启动 N

一文详解PostgreSQL复制参数

《一文详解PostgreSQL复制参数》PostgreSQL作为一款功能强大的开源关系型数据库,其复制功能对于构建高可用性系统至关重要,本文给大家详细介绍了PostgreSQL的复制参数,需要的朋友可... 目录一、复制参数基础概念二、核心复制参数深度解析1. max_wal_seChina编程nders:WAL

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与