Flume KafkaChannel的使用
Flume提供了Kafka Sink将数据写入Kafka,也提供了KafkaChannel使用Kafka作为Channel存储数据。
使用KafkaChannel既可以避免Memory Channel的内存溢出,又可以提供不错的性能。
另外当我们需要将数据写入Kafka时,可以不需要Sink,直接使用KafkaChannel就可以将数据写入Kafka,省去了Sink的开销。
以下简单介绍下KafkaChannel的使用。Flume的版本是1.9.0。
需要注意的几点
- 通常,与channel相关的配置值应用于channel配置级别,例如:a1.channel.k1.type =
- 与Kafka相关的配置值以"kafka"前缀
- 生产者/消费者特定的属性以kafka.producer或kafka.consumer为前缀
- 尽可能使用Kafka参数名称。尽量使用Kafka自身的参数配置。
参数
加粗的代表是必需的。
参数 | 默认值 | 描述 |
---|---|---|
type | – |
组件名称。必须为org.apache.flume.channel.kafka.KafkaChannel
|
kafka.bootstrap.servers | – | kafka的broker list,建议至少两个。格式是用逗号分隔的主机名:端口列表 |
kafka.topic | flume-channel | channel将写入的kafka topic |
kafka.consumer.group.id | flume | 供sink消费的消费者组 |
parseAsFlumeEvent | true | 是否转换为flume的事件格式。 |
pollTimeout | 500 | 调用poll的超时时间 |
defaultPartitionId | – | channel默认写入的partitionId。如果没有指定,只是用kafka producer默认的分区器。 |
partitionIdHeader | – | 设置后,生产者将从事件头中获取使用该属性值命名的字段的值,并将消息发送到主题的指定分区。如果该值表示无效分区,则该事件将不被接受到通道中。如果存在头值,则此设置将覆盖defaultPartitionId。 |
kafka.consumer.auto.offset.reset | latest | sink首次消费channel时的策略 |
kafka.producer.security.protocol | PLAINTEXT | Set to SASL_PLAINTEXT, SASL_SSL or SSL if writing to Kafka using some level of security. See below for additional info on secure setup. |
kafka.consumer.security.protocol | PLAINTEXT | Same as kafka.producer.security.protocol but for reading/consuming from Kafka. |
more producer/consumer security props | If using SASL_PLAINTEXT, SASL_SSL or SSL refer to Kafka security for additional properties that need to be set on producer/consumer. |
以上参数是Flume所提供的。
仅有上述参数,是不够的,Flume支持我们去配置Kafka自身的生产者和消费者的参数。
分别通过kafka.producer.参数名
、kafka.consumer.参数名
来配置KafkaChannel作为生产者和消费者时候的参数。
上游Source写入KafkaChannel时,用的是生产者的参数;KafkaChannel写入下游Sink时,用的是消费者的参数。
配置案例
myagent.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
myagent.channels.c1.kafka.bootstrap.servers = sdw4:9092,sdw5:9092,sdw6:9092
myagent.channels.c1.useFlumeEventFormat=false
myagent.channels.c1.kafka.topic = hardware-log
# 配置生产者的ack为1
myagent.channels.c1.kafka.producer.acks = 1
# 配置生产者的批大小为100000
myagent.channels.c1.kafka.producer.batch.size = 100000
myagent.channels.c1.kafka.producer.linger.ms = 5000
参考
Flume KafkaChannel文档 http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#kafka-channel
Kafka生产者的配置:kafka-clients包中的org.apache.kafka.clients.producer.ProducerConfig
Kafka消费者的配置:kafka-clients包中的org.apache.kafka.clients.consumer.ConsumerConfig
Flume KafkaChannel的使用相关推荐
- 即将上线的flume服务器面临的一系列填坑笔记
即将上线的flume服务器面临的一系列填坑笔记 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.flume缺少依赖包导致启动失败! 报错信息如下: 2018-10-17 ...
- Flume性能测试报告
1. 测试环境 1.1 硬件 CPU:Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz(8核) 内存:16G 1.2 软件 Flume:1.6.0 Hadoop:2.6. ...
- Flume 实战开发指南
Flume 文章目录 Flume Flume介绍 Flume核心概念 Flume NG的体系结构 Source Channel Sink Flume的部署类型 单一流程 多代理流程(多个agent顺序 ...
- Flume Channel
Channels are the repositories where the eventsare staged on a agent. Source adds the events and Sink ...
- Flume+kafka+Spark Steaming demo2
一,flume配置 # Name the components on this agent a1.sources = tailsource-1 a1.sinks = remotesink a1.cha ...
- Flume 1.9.0用户指南
概述 系统要求 架构 数据流模型 复杂的流程 可靠性 可恢复性 设置 设置 agent 配置单个组件 将各个部分连接在一起 启动 agent 一个简单的例子 在配置文件中使用环境变量 记录原始数据 基 ...
- 最全Flume常用配置文件详情解析
Flume的常用配置项 1.Source配置项(常见配置项) 1.1 Avro Source 1.2 NetCat Source 1.3 Exec Source 1.4 Spooling Direct ...
- Flume自定义拦截器
需求 定义两个拦截器,一个用于过滤不合法数据,一个用于区分日志类型. ETL拦截器主要用于,过滤时间戳不合法和Json数据不完整的日志. 日志类型区分拦截器主要用于,将启动日志和事件日志区分开来,方便 ...
- 大数据——Flume组件Source、Channel和Sink具体使用
Flume组件Source.Channel和Sink使用说明 Flume Sources Avro Source 配置范例 Thrift Source 配置范例 Exec Source 配置范例 JM ...
最新文章
- 数据结构:链表面试题
- Elasticsearch6.X 去重
- LeetCode 02.两数相加
- VSCode自定义代码片段6——CSS选择器
- AES SBox的构造(python)
- matlab通信系统性能估计(误码率、误比特率、眼图、星座图....)
- plsqldev 技巧
- iOS测试技巧:GPX文件修改经纬度
- H265解码流程理解
- 多个源文件进行编译,即 makefile 的编写
- lighttpd服务器404页修改,教你学会Lighttpd的安装配置
- column xxx is of type integer but expression is of type character varying。String的成员变量存到int的数据库列 报错
- JavaScript 判断手机号码格式 正则表达式 亲测
- 【springcloud】Eureka 服务提供者 增加服务暴漏
- 《蔡康永的情商课》重点摘录
- java编写定义圆类和圆柱体类,Java程序基础编程基础
- SLAM算法资料收集
- 学习笔记:IDF 移动端UX设计 1.11 课程回顾
- icloud android,果粉当腻了?你和安卓手机只差一个iCloud同步
- 金融项目经验之代码安全
热门文章
- 2010年程序员工资
- java毕业设计的创意项目众筹平台的设计与开发mybatis+源码+调试部署+系统+数据库+lw
- 深入理解 DRM (1) --了解Widevine与OEMCrypto
- matlab的汉明窗函数如何导出,时域窗函数
- 自行车租借管理系统c语言,校园自行车管理系统.doc
- APP Invertor 蓝牙BLE 个人案例分享 快速开发自己的蓝牙APP
- 微信聊天api接口调用
- 怎么用计算机算几何倍增,城市规划中对计算机仿真技术应用.doc
- git ——回退过去、回到未来
- C51中各种存储区名词解释