一、本地环境log级别设置问题
storm-core-1.1.0.jar下面有个log4j2.xml文件,默认log级别是info。
<configuration monitorInterval="60"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%-4r [%t] %-5p %c{1.} - %msg%n"/> </Console> </Appenders> <Loggers> <Logger name="org.apache.zookeeper" level="WARN"/> <Root level="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </configuration>
可以maven工程main/resources下面新建一个log4j2.xml文件,调整log级别。
<configuration monitorInterval="60"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%-4r [%t] %-5p %c{1.} - %msg%n"/> </Console> </Appenders> <Loggers> <Logger name="org.apache.zookeeper" level="WARN"/> <Root level="error"> <AppenderRef ref="Console"/> </Root> </Loggers> </configuration>
二、IRichBolt和IBasicBolt/BaseBasicBolt对比
对于spout,有ISpout,IRichSpout,BaseRichSpout
对于bolt,有IBolt,IRichBolt,BaseRichBolt,IBasicBolt,BaseBasicBolt
IBasicBolt,BaseBasicBolt不用每次execute完成都写ack/fail,因为已经帮你实现好了。
三、配置
storm里面有一堆参数可以配置来调整nimbus, supervisor以及正在运行的topology的行为, 一些配置是系统级别的, 一些配置是topology级别的。所有有默认值的配置的默认配置是配置在default.xml里面的。你可以通过定义个storm.xml在你的 classpath厘米来覆盖这些默认配置。并且你也可以在代码里面设置一些topology相关的配置信息 – 使用StormSubmitter。当然,这些配置的优先级是: default.xml < storm.xml < TOPOLOGY-SPECIFIC配置。