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

news2024/11/20 2:22:15

一、目的

在实际项目的开发过程中,不同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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

touch - 创建空文件与修改时间戳

touch命令的功能是用于创建空文件与修改时间戳。如果文件不存在,则会创建出一个空内容的文本文件;如果文件已经存在,则会对文件的Atime(访问时间)和Ctime(修改时间)进行修改操作,管理…

数字秒表设计仿真VHDL跑表,源码,视频

名称:简单秒表设计仿真VHDL跑表 软件:Quartus 语言:VHDL 代码功能: 数字秒表功能描述 本次练习只需要一个数码管(假设该数码管已被选中),实现数码管显示功能,具体要求如下(设数码管为共阳) 1)实现秒表计时功能。…

阿里云安装 redis

1、在opt目录下面安装redis https://download.redis.io/redis-stable.tar.gz redis的最新稳定版本。更多版本可见 redis cd /opt wget https://download.redis.io/redis-stable.tar.gz2、解压tar包,会生成redis-stable文件夹 tar -xzvf redis-stable.tar.gz3、安装…

NLP Bi-Encoder和Re-ranker

Retrieve & Re-Rank https://www.sbert.net/examples/applications/retrieve_rerank/README.html Bi-Encoder vs. Cross-Encoder https://www.sbert.net/examples/applications/cross-encoder/README.html Bi-Encoder会用BERT对输入文本编码,再根据cosine相似度…

JAVAEE初阶相关内容第十五弹--网络編程

写在前 简单描述一下关于路由器的三层转发和交换机的二层转发。 路由器是三层转发-->在网络层转发。【需要解析出IP协议中的源IP、目的IP来规划路径】 交换机是二层转发-->在数据链路层转发。【只需要关注下一步发展到哪个相邻的设备上,不需要IP地址&#…

人工智能发展与结构科学

人工智能(AI)在各种应用中的影响力不断增强,从简单的计算任务到复杂的决策支持。但在这背后,AI的发展其实是一个关于结构演变的故事。从最早的线性结构,到今天的复杂网络结构,结构的演变对AI的能力和效率产…

【离线/并查集】CF1213 G

想起来好久没写题解了,随便写一下把 感觉写多了div3后面的题就变得简单了,div3似乎没什么思维含量,甚至有时候能开出div3的2100.... 心血来潮写一下这个*1800的题解,思路一下就出了,但是一开始多了个log被卡了&#x…

C#通过Entity Framework实体对数据表增删改查

目录 一、创建实体数据模型 1.建立数据库连接 2.建立EF实体模型 二.设计窗体和EF应用 1.窗体设计 2.应用程序设计 3.源码 4.生成效果 (1)查询 (2)修改 (3)删除 (4)增加 …

Python 文件打包成可执行文件

打包 要将Python脚本打包成可执行文件,常见的做法是使用PyInstaller或cx_Freeze工具。下面是使用PyInstaller的基本步骤: 使用conda安装pyinstaller (建议) conda install -c conda-forge pyinstaller上面的命令从conda-forge通…

基于nodejs+vue 衣服穿搭推荐系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

sd卡的坏块管理与负载均衡

坏块管理 坏块是指在存储介质中出现物理损坏或不可靠的数据块。由于SD卡使用的是闪存技术,它也面临着坏块的问题。 SD卡通过实现坏块管理机制来处理坏块。具体的坏块管理方法可能因制造商和产品型号而有所不同,但通常会采取以下策略: 坏块标…

打卡go学习第一天

8.1 下面展示一些 代码。 package mainimport ("fmt""net""os""time" )type Clock struct {Name stringAddr string } func main() {clocks : []Clock{{Name: "New York", Addr: "localhost:8000"…

笔记39:在Pycharm中为项目添加新解释器

很久不用pycharm都生疏了 a a a 第一步:创建虚拟环境 略 a a a 第二步:将虚拟环境应用到项目中去 【File】----【Settings】----【Project:~~~】-----【Project Interpreter】----【选择合适的解释器】 ​​​​​​​ 因为我们要用新的解释…

【OpenCV概念】 11— 对象检测

一、说明 这都是关于物体识别的。物体识别是指通过计算机视觉技术,自动识别图像或视频中的物体及其属性和特征,是人工智能领域的一个分支。物体识别可应用于多个领域,包括工业自动化、智能家居、医疗、安防等。请随时阅读这篇文章&#xff1a…

摩尔信使MThings的实时数据曲线

摩尔信使MThings配备了毫秒级的实时数据录波功能,提供了多种展示模式,包括:固定时间范围、示波器等; 用户可以添加实时数据警戒线,直观呈现异常数据; 用户可以灵活的缩放、拖动曲线数据,可以指…

nodejs+vue衣服穿搭推荐系统-计算机毕业设计

模块包括主界面,系统首页、个人中心、用户管理、风格标签管理、衣服分类管理、衣服穿搭管理、服装信息管理、我的搭配管理、用户反馈、系统管理等进行相应的操作。无论是日常生活,还是特定场景,诸如面试、约会等,人们都有展现自我…

【试题028】C语言关于逻辑与的短路例题

1.题目&#xff1a;设inta1,b;&#xff0c;执行b0&&(a);后&#xff0c;变量a的值是&#xff1f; 2.代码解析&#xff1a; #include <stdio.h> int main() {//设inta1,b;执行b0&&(a);后&#xff0c;变量a的值是?int a 1, b;printf("表达式的值是…

【每日一题】根据规则将箱子分类

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;分类讨论 其他语言cpython3 写在最后 Tag 【分类讨论】【2023-10-20】 题目来源 2525. 根据规则将箱子分类 题目解读 题目意思明确&#xff0c;根据条件判断箱子的类别。 解题思路 方法一&#xff1a;分类讨论 根据…

Pyqt组合控件与QSpacerItem指南

Pyqt组合控件与QSpacerItem指南&#xff09; 组合控件效果如下所示&#xff1a; QSpacerItem详解 组合控件 创建一个组合的控件&#xff0c;比如 QCheckBox 和 QLabel&#xff0c;并为这个组合设置背景颜色&#xff0c;可以将它们放在一个容器小部件中&#xff0c;然后为容器小…

Leetcode——数组的旋转

189. 轮转数组 class Solution { public:void rotate(vector<int>& nums, int k) {int lennums.size();vector<int> num(len);for(int i0;i<len;i){num[(ik)%len]nums[i];}nums.assign(num.begin(),num.end());} };旋转数组 没看出数学公式gg 正确答案 cl…