Flume提供了Kafka Sink将数据写入Kafka,也提供了KafkaChannel使用Kafka作为Channel存储数据。

使用KafkaChannel既可以避免Memory Channel的内存溢出,又可以提供不错的性能。

另外当我们需要将数据写入Kafka时,可以不需要Sink,直接使用KafkaChannel就可以将数据写入Kafka,省去了Sink的开销。

以下简单介绍下KafkaChannel的使用。Flume的版本是1.9.0。

需要注意的几点

  1. 通常,与channel相关的配置值应用于channel配置级别,例如:a1.channel.k1.type =
  2. 与Kafka相关的配置值以"kafka"前缀
  3. 生产者/消费者特定的属性以kafka.producer或kafka.consumer为前缀
  4. 尽可能使用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的使用相关推荐

  1. 即将上线的flume服务器面临的一系列填坑笔记

      即将上线的flume服务器面临的一系列填坑笔记 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.flume缺少依赖包导致启动失败! 报错信息如下: 2018-10-17 ...

  2. 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. ...

  3. Flume 实战开发指南

    Flume 文章目录 Flume Flume介绍 Flume核心概念 Flume NG的体系结构 Source Channel Sink Flume的部署类型 单一流程 多代理流程(多个agent顺序 ...

  4. Flume Channel

    Channels are the repositories where the eventsare staged on a agent. Source adds the events and Sink ...

  5. Flume+kafka+Spark Steaming demo2

    一,flume配置 # Name the components on this agent a1.sources = tailsource-1 a1.sinks = remotesink a1.cha ...

  6. Flume 1.9.0用户指南

    概述 系统要求 架构 数据流模型 复杂的流程 可靠性 可恢复性 设置 设置 agent 配置单个组件 将各个部分连接在一起 启动 agent 一个简单的例子 在配置文件中使用环境变量 记录原始数据 基 ...

  7. 最全Flume常用配置文件详情解析

    Flume的常用配置项 1.Source配置项(常见配置项) 1.1 Avro Source 1.2 NetCat Source 1.3 Exec Source 1.4 Spooling Direct ...

  8. Flume自定义拦截器

    需求 定义两个拦截器,一个用于过滤不合法数据,一个用于区分日志类型. ETL拦截器主要用于,过滤时间戳不合法和Json数据不完整的日志. 日志类型区分拦截器主要用于,将启动日志和事件日志区分开来,方便 ...

  9. 大数据——Flume组件Source、Channel和Sink具体使用

    Flume组件Source.Channel和Sink使用说明 Flume Sources Avro Source 配置范例 Thrift Source 配置范例 Exec Source 配置范例 JM ...

最新文章

  1. 数据结构:链表面试题
  2. Elasticsearch6.X 去重
  3. LeetCode 02.两数相加
  4. VSCode自定义代码片段6——CSS选择器
  5. AES SBox的构造(python)
  6. matlab通信系统性能估计(误码率、误比特率、眼图、星座图....)
  7. plsqldev 技巧
  8. iOS测试技巧:GPX文件修改经纬度
  9. H265解码流程理解
  10. 多个源文件进行编译,即 makefile 的编写
  11. lighttpd服务器404页修改,教你学会Lighttpd的安装配置
  12. column xxx is of type integer but expression is of type character varying。String的成员变量存到int的数据库列 报错
  13. JavaScript 判断手机号码格式 正则表达式 亲测
  14. 【springcloud】Eureka 服务提供者 增加服务暴漏
  15. 《蔡康永的情商课》重点摘录
  16. java编写定义圆类和圆柱体类,Java程序基础编程基础
  17. SLAM算法资料收集
  18. 学习笔记:IDF 移动端UX设计 1.11 课程回顾
  19. icloud android,果粉当腻了?你和安卓手机只差一个iCloud同步
  20. 金融项目经验之代码安全

热门文章

  1. 2010年程序员工资
  2. java毕业设计的创意项目众筹平台的设计与开发mybatis+源码+调试部署+系统+数据库+lw
  3. 深入理解 DRM (1) --了解Widevine与OEMCrypto
  4. matlab的汉明窗函数如何导出,时域窗函数
  5. 自行车租借管理系统c语言,校园自行车管理系统.doc
  6. APP Invertor 蓝牙BLE 个人案例分享 快速开发自己的蓝牙APP
  7. 微信聊天api接口调用
  8. 怎么用计算机算几何倍增,城市规划中对计算机仿真技术应用.doc
  9. git ——回退过去、回到未来
  10. C51中各种存储区名词解释