< dependency >
< groupId >org.apache.storm</ groupId >
< artifactId >storm-kafka</ artifactId >
< version >1.0.1</ version >
< exclusions >
< exclusion >
< artifactId >kafka-clients</ artifactId >
< groupId >org.apache.kafka</ groupId >
</ exclusion >
</ exclusions >
</ dependency >
< dependency
>
< groupId
>org.apache.kafka</ groupId
>
< artifactId
>kafka_2.10</ artifactId
>
< version
>0.8.1.1</ version
>
< exclusions
>
< exclusion
>
< groupId
>org.apache.zookeeper</ groupId
>
< artifactId
>zookeeper</ artifactId
>
</ exclusion
>
< exclusion
>
< groupId
>log4j</ groupId
>
< artifactId
>log4j</ artifactId
>
</ exclusion
>
</ exclusions
>
如果所使用的kafka依赖版本里没有对kafka-clients的依赖,请再加入该依赖(storm-kafka依赖于kafka-clients)
1.Storm-kafka中所有的KafkaBolt(包括Trident和普通),不再使用配置”kafka.broker.properties”或xxBolt.KAFKA_BROKER_PROPERTIES ( 也即是 ”kafka.broker.properties” )来传递Kafka Producer的配置,而是使用withProducerProperties方法传递该配置(TridentKafkaState使用TridentKafkaStateFactory的该方法实现)。必要的三个配置为:bootstrap.servers,key.serializer,value.serializer。
2.org.apache.storm.tuple.Tuple类中的方法变更:已下方法被弃用,
@Deprecated
public GlobalStreamId getSourceGlobalStreamid();
新增方法:
public GlobalStreamId getSourceGlobalStreamId();
故代码升级时,需要Tuple的子类需要实现该方法。
3.由于storm 1.0.1的lib中删除了logback的包,故项目中用到的logback的,需要在pom文件中增加依赖。
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.6</version>
</dependency>
4.org.apache.storm.spout.Scheme 中的函数List<Object> deserialize(ByteBuffer ser)的参数由byte[]转换为ByteBuffer。使用byte[] ser =org.apache.storm.utils.Utils.toByteArray(string)做转换
注意事项: