我有一个flume代理(1个源,1个通道,1个接收器),它从特定目录(spooldir)读取数据并发送到kafka接收器。根据我的观察,它只是写入特定的分区。将采用什么配置来启用对kafka主题/分区的并行发送/处理?
bvn4nwqk1#
您可以尝试添加另一个使用spooldir源和通道的接收器。所以大致是这样的:Flume-通道1-Flume1-Flume2不确定是否需要其他频道,因为您可能会从spooldir源中重新读取项目。
guykilcj2#
默认情况下,事件在分区之间按 key 标题。如果您想自己对数据进行分区,那么您需要使用拦截器,拦截器将设置 partitionIdHeader .如果您需要向多个主题发送数据,而不只是需要为同一个源添加更多频道,并将每个频道连接到Kafka接收器:
key
partitionIdHeader
a1.sources.r1.channels = c1 c2 a1.sinks.k1.channel = c1 a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.kafka.topic = topic1 ... a1.sinks.k2.channel = c2 a1.sinks.k2.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k2.kafka.topic = topic2
2条答案
按热度按时间bvn4nwqk1#
您可以尝试添加另一个使用spooldir源和通道的接收器。
所以大致是这样的:Flume-通道1-Flume1-Flume2
不确定是否需要其他频道,因为您可能会从spooldir源中重新读取项目。
guykilcj2#
默认情况下,事件在分区之间按
key
标题。如果您想自己对数据进行分区,那么您需要使用拦截器,拦截器将设置partitionIdHeader
.如果您需要向多个主题发送数据,而不只是需要为同一个源添加更多频道,并将每个频道连接到Kafka接收器: