storm jar包执行报错问题解决

来源:互联网 发布:epub手机打开知乎 编辑:程序博客网 时间:2024/04/30 19:13

1 要将kafka和zookeeper的ip 机器名都要配在storm集群各节点的hosts中,只配zk的不行,storm kafka spout会通过zk去找kafka地址,zk中存的kafka地址是域名。

java.lang.RuntimeException: java.nio.channels.ClosedChannelException
        at storm.kafka.ZkCoordinator.refresh(ZkCoordinator.java:103) ~[storm-kafka-0.9.5.jar:0.9.5]
        at storm.kafka.ZkCoordinator.getMyManagedPartitions(ZkCoordinator.java:69) ~[storm-kafka-0.9.5.jar:0.9.5]
        at storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:135) ~[storm-kafka-0.9.5.jar:0.9.5]
        at backtype.storm.daemon.executor$fn__6579$fn__6594$fn__6623.invoke(executor.clj:565) ~[storm-core-0.9.5.jar:0.9.5]
        at backtype.storm.util$async_loop$fn__459.invoke(util.clj:463) ~[storm-core-0.9.5.jar:0.9.5]
        at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
Caused by: java.nio.channels.ClosedChannelException: null
        at kafka.network.BlockingChannel.send(BlockingChannel.scala:100) ~[kafka_2.10-0.8.2.1.jar:na]
        at kafka.consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:78) ~[kafka_2.10-0.8.2.1.jar:na]
        at kafka.consumer.SimpleConsumer.kafka$consumer$SimpleConsumer$$sendRequest(SimpleConsumer.scala:68) ~[kafka_2.10-0.8.2.1.jar:na]
        at kafka.consumer.SimpleConsumer.getOffsetsBefore(SimpleConsumer.scala:127) ~[kafka_2.10-0.8.2.1.jar:na]
        at kafka.javaapi.consumer.SimpleConsumer.getOffsetsBefore(SimpleConsumer.scala:79) ~[kafka_2.10-0.8.2.1.jar:na]
        at storm.kafka.KafkaUtils.getOffset(KafkaUtils.java:77) ~[storm-kafka-0.9.5.jar:0.9.5]
        at storm.kafka.KafkaUtils.getOffset(KafkaUtils.java:67) ~[storm-kafka-0.9.5.jar:0.9.5]
        at storm.kafka.PartitionManager.<init>(PartitionManager.java:83) ~[storm-kafka-0.9.5.jar:0.9.5]
        at storm.kafka.ZkCoordinator.refresh(ZkCoordinator.java:98) ~[storm-kafka-0.9.5.jar:0.9.5]
        ... 6 common frames omitted

2 用自己集群的hadoop配置文件hdfs-site.xml和core-site.xml放在resource文件夹下,然后打包进去,否则storm节点会找不到hadoop配置信息

3 修改core-site.xml加一个属性
conf一直是core-site.xml和core-default.xml

core-site是最主要的配置文件 ,需增加如下属性:

<property>    <name>fs.hdfs.impl</name>    <value>org.apache.hadoop.hdfs.DistributedFileSystem</value>    <description>The FileSystem for hdfs: uris.</description></property>
否则报错 : c.l.b.s.c.b.RCFileWriterBolt [ERROR] fs create: java.io.IOException: No FileSystem for scheme: hdfs

4 写rcfile的时候,传入的hdfs路径必须与hdfs-site.xml中的路径完全一致,如果配置文件中显示指明了端口号9000,传入路径也必须写明,否则报错:

java.lang.IllegalArgumentException: Wrong FS:。。。 expected 。。。


0 0
原创粉丝点击