Storm-Kafka使用笔记(一):Scheme和Mapper

本文介绍了Storm-Kafka的使用,重点讲解了Scheme和Mapper的作用。Scheme负责从Kafka的byte[]数据转换为Storm的Tuple,而Mapper则处理从Tuple到Kafka消息的转换。默认提供了FieldNameBasedTupleToKafkaMapper实现,但用户也可根据需求自定义转换规则。
摘要由CSDN通过智能技术生成

一、背景

因为是项目驱动的去了解Storm-kafka,所以会由于分工去先了解某一部分,顺序有点杂乱。

二、Storm-Kafka介绍

了解Storm的都知道,Storm拓扑中比较基本的就是Spout和Bolt,Spout作为数据发射源,可以从数据库或者其他地方取得数据然后发射出去,Bolt就是中间一个个运算处理的组件,最后一个Bolt可以担任数据处理结果汇总或者数据落地的角色。

三、Storm-Kafka为我们提供了什么

最先了解的是KafkaSpout和KafkaBolt,显而易见就是把我们上面说的Spout和最后一个Bolt的功用具体化,具体到KafkaSpout就是从Kafka取数据源的Spout,而KafkaBolt就是把数据处理结果转化为一定格式,发送到Kafka的Bolt。

但是,在这之中我们需要有一些规约,就是Spout从Kafka拿到数据后我要怎么处理转换成Storm中的数据格式–Tuple,还有Bolt要怎么把接收到的Tuple转换成Kafka的格式发送到Kafka,这就涉及到另外两个基础的概念,Scheme和Mapper,它们分别说明了我们上面的规约,并把数据进行转换再返回。
Scheme就实现了从byte[]到其他格式的转换(默认提供的是从字节流到字符串的转换)。Mapper就实现了从Tuple到其他格式的转换(默认提供的是从Tuple取Field为key的作为key返回,取Field为message的作为message转换),也让我们可以个性化实现(当然Storm-Kafka也提供了默认的)。

四、Mapper

Mapper接口:

package org.apache.storm.kafka.bolt.mapper;

import org.apache.storm.tuple.Tuple;

import java.io.Serializable;

/**
 * as the really verbose name suggests this interface mapps a storm tuple to kafka key and message.
 * @param <K> type of key.
 * @param <V> type of value.
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值