export 可执行jar包,在Launch Configuration找不到启动类:需要把启动类先执行一遍
hadoop 无法上传文件,提示没有datanode节点
a.关闭所有hadoop服务 b.删除/usr/hadoop/hdfs/下的data目录与name目录(此方法会导致数据丢失) c.重新格式化namenode节点 d.启动服务
Server IPC version 9 cannot communicate with client version 4错误 :
原因是依赖了老版本的hadoop-core包,改为依赖hadoop-hdfs
、hadoop-common
和hadoop-client
即可
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
将$HADOOP_HOME/share/hadoop/hdfs/lib 目录下htrace-core-3.1.0-incubating.jar拷贝到项目lib目录
jar包冲突,会导致不能向kafka发送消息,在相关依赖下添加:
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
storm中bolt会重复处理消息
处理完成后未向storm反馈,因此spout会重新发送数据
在bolt中添加collector.ack(input)
storm启动时抛出异常:backtype.storm.generated.InvalidTopologyException: null
一般都是定义输入、输出时有错误,目前遇到两种情况导致该异常:
a.需要向下一级输入时,没有declarer.declare(new Fields(...)) 定义相关的域
b.builder在setBolt方法后,指定上一级组件id时id写错,例如builder.setBolt("ruleBolt", new RuleBolt(), 1).shuffleGrouping("KafkaSpout") 中KafkaSpouot与上一级指定的id名不一致