在通过Apache Storm Bolt将数据插入HBase时,需要解决间歇性SocketTimeoutException问题的解决方案
就我面临的问题寻求帮助/指点 我们有一个解决方案,其中我们通过ApacheKafka从Windows读取Web服务器日志文件,然后通过Storm进行处理,Storm随后将存储在HBase中。我们已经完成了前两部分——通过卡夫卡读取文件并通过Storm处理。但在将处理后的数据存储到HBase时,我们面临着一些问题 为了存储到HBase中,我们编写了一个Storm Bolt,它读取数据,处理数据(按照分隔符分割行的简单处理),然后将数据发送到HBase中。在本文中,我们使用ConnectionFactoryJavaAPI创建了HBase连接,我们可以通过日志看到相同的情况 一旦喷口和前一个螺栓传递数据,我们就会看到HBase螺栓中存在不一致的行为。有时,它会继续并将数据插入HBase(我们能够通过bolt日志和HBase外壳验证相同的数据),但在其他时候,它会抛出SocketTimeoutException(包含在下面)。当我们重新启动HBase时,例外情况就会消失(有时一次重新启动有效,而有时我们必须重新启动2-3次) 执行代码时,会触发闩锁,但不会插入任何行。在Storm UI上,我们看到日志显示SocketTimeoutException。当我们重新启动HBase几次,然后插入行之后,这种情况就会消失。每次我们以SocketTimeoutException结束时,都必须完成重新启动HBase的过程。在此期间,我们看到喷口和之前的螺栓工作正常(在Ambari的Storm UI中更改发射和传输的编号) 我们看到两种情况:在通过Apache Storm Bolt将数据插入HBase时,需要解决间歇性SocketTimeoutException问题的解决方案,hbase,apache-storm,Hbase,Apache Storm,就我面临的问题寻求帮助/指点 我们有一个解决方案,其中我们通过ApacheKafka从Windows读取Web服务器日志文件,然后通过Storm进行处理,Storm随后将存储在HBase中。我们已经完成了前两部分——通过卡夫卡读取文件并通过Storm处理。但在将处理后的数据存储到HBase时,我们面临着一些问题 为了存储到HBase中,我们编写了一个Storm Bolt,它读取数据,处理数据(按照分隔符分割行的简单处理),然后将数据发送到HBase中。在本文中,我们使用ConnectionFac
2017-11-24 07:19:36.562 k.c.SimpleConsumer [INFO] Reconnect due to error:
java.net.SocketTimeoutException
at sun.nio.ch.SocketAdaptor$SocketInputStream.read(SocketAdaptor.java:211) ~[?:1.8.0_144]
at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) ~[?:1.8.0_144]
at java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:385) ~[?:1.8.0_144]
at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:81) ~[kafka-clients-0.9.0.2.4.3.0-227.jar:?]
at kafka.network.BlockingChannel.readCompletely(BlockingChannel.scala:140) ~[kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.network.BlockingChannel.receive(BlockingChannel.scala:131) ~[kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:102) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer.kafka$consumer$SimpleConsumer$$sendRequest(SimpleConsumer.scala:99) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SimpleConsumer.scala:148) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:148) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:148) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply$mcV$sp(SimpleConsumer.scala:147) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:147) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:147) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.consumer.SimpleConsumer.fetch(SimpleConsumer.scala:146) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at kafka.javaapi.consumer.SimpleConsumer.fetch(SimpleConsumer.scala:54) [kafka_2.10-0.9.0.2.4.3.0-227.jar:?]
at storm.kafka.KafkaUtils.fetchMessages(KafkaUtils.java:165) [storm-kafka-0.10.0.2.4.3.0-227.jar:0.10.0.2.4.3.0-227]
at storm.kafka.PartitionManager.fill(PartitionManager.java:170) [storm-kafka-0.10.0.2.4.3.0-227.jar:0.10.0.2.4.3.0-227]
at storm.kafka.PartitionManager.next(PartitionManager.java:132) [storm-kafka-0.10.0.2.4.3.0-227.jar:0.10.0.2.4.3.0-227]
at storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:144) [storm-kafka-0.10.0.2.4.3.0-227.jar:0.10.0.2.4.3.0-227]
at backtype.storm.daemon.executor$fn__6191$fn__6206$fn__6235.invoke(executor.clj:601) [storm-core-0.10.0.2.4.3.0-227.jar:0.10.0.2.4.3.0-227]
at backtype.storm.util$async_loop$fn__545.invoke(util.clj:479) [storm-core-0.10.0.2.4.3.0-227.jar:0.10.0.2.4.3.0-227]
at clojure.lang.AFn.run(AFn.java:22) [clojure-1.6.0.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]