试图在一台机器上运行Kafka生产商,在另一台机器上运行消费者.设置以下属性:advertised.host.name advertised.port
但是在控制台消费者上获得以下错误:
bin/kafka-console-consumer.sh --zookeeper ip:2181 - topic topic --from-beginning
[2016-01-18 16:38:00,939] WARN Fetching topic metadata with correlation id 2112 for topics [Set(topic)] from broker [id:0,host:user-Desktop,port:9092] failed (kafka.client.ClientUtils$)
java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:100)
at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:73)
at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:72)
at kafka.producer.SyncProducer.send(SyncProducer.scala:113)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:58)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:93)
at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:66)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:60)
[2016-01-18 16:38:00,939] WARN [console-consumer-82496_gopikrishnan-B85M-D3H-A-1453114849146-e6661d41-leader-finder-thread], Failed to find leader for Set([topic,0]) (kafka.consumer.ConsumerFetcherManager$LeaderFinderThread)
kafka.common.KafkaException: fetching topic metadata for topics [Set(topic)] from broker [ArrayBuffer(id:0,host:user-Desktop,port:9092)] failed
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:72)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:93)
at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:66)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:60)
Caused by: java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:100) …Run Code Online (Sandbox Code Playgroud) 我有一个示例数组:
[{
"abc":"1",
"de":"1"
},
{
"fgh":"2",
"ij":"4"
}]
Run Code Online (Sandbox Code Playgroud)
这是一个org.json4s.JsonAST.JValue.
如何迭代数组中的每个对象,分别对每个对象进行操作?
我们有两个清单:
val a:List[(String, Int, Int)] = List(("apple", 3, 25),("orange", 4, 47))
val b:List[(String, String)] = List(("mango", "25"),("orange", "50"))
Run Code Online (Sandbox Code Playgroud)
哪个是加入a和b得到的最佳方法:
val c : List[(String, Int, Int, String)] = List(("orange", 4, 47, "50"))
Run Code Online (Sandbox Code Playgroud)