我正在为Kafka 0.9.0.0 做Kafka Quickstart.
我有动物园管理员在听,localhost:2181
因为我跑了
bin/zookeeper-server-start.sh config/zookeeper.properties
Run Code Online (Sandbox Code Playgroud)
我有一个经纪人在听,localhost:9092
因为我跑了
bin/kafka-server-start.sh config/server.properties
Run Code Online (Sandbox Code Playgroud)
我有一个制作人发布主题"测试",因为我跑了
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
yello
is this thing on?
let's try another
gimme more
Run Code Online (Sandbox Code Playgroud)
当我运行旧的API使用者时,它可以通过运行来运行
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
Run Code Online (Sandbox Code Playgroud)
但是,当我运行新的API使用者时,我运行时没有得到任何东西
bin/kafka-console-consumer.sh --new-consumer --topic test --from-beginning \
--bootstrap-server localhost:9092
Run Code Online (Sandbox Code Playgroud)
是否可以使用新的api从控制台消费者订阅主题?我该如何解决?
我目前正在从不同的数据源中提取一些度量标准,并将它们存储在类型的映射中,Map[String,Any]
其中密钥对应于度量标准名称,值对应于度量标准值.我需要这或多或少是通用的,这意味着值类型可以是基本类型或基元类型列表.
我想将此映射序列化为JSON格式的字符串,为此我使用json4s
库.事情是它似乎不可能,我没有看到可能的解决方案.我希望像下面这样的东西开箱即用:)
val myMap: Map[String,Any] = ... // extract metrics
val json = myMap.reduceLeft(_ ~ _) // create JSON of metrics
Run Code Online (Sandbox Code Playgroud)
通过导航源代码我已经看到json4s
为了变换原始类型来提供隐式转换JValue
的和也将转换Traversable[A]/Map[String,A]/Option[A]
到JValue
的(被购自的隐式转换的限制下A
到JValue
,这是我明白它实际上意味着A
是一个基本类型).该~
运营商提供构建的一个很好的方式JObject
的出来JField
的,这仅仅是一个类型别名(String, JValue)
.
在这种情况下,映射值类型是Any
,因此不会发生隐式转换,因此编译器会抛出以下错误:
value ~ is not a member of (String, Any)
[error] val json = r.reduceLeft(_ ~ _)
Run Code Online (Sandbox Code Playgroud)
我想要完成的是什么解决方案?
在Scala中,如何解压缩包含的文本file.gz
以便可以处理它?我很高兴将文件的内容存储在变量中,或者将其保存为本地文件,以便以后可以通过程序读入.
具体来说,我使用Scalding处理压缩日志数据,但Scalding没有定义读取它们的方法FileSource.scala
.
我在 bash 中编写了一个小脚本,但只有当我将字符串存储为变量时它才起作用,我想知道为什么。总结如下:
当我使用字符串本身时,bash 将其视为单个实体
for word in "this is a sentence"; do
echo $word
done
# => this is a sentence
Run Code Online (Sandbox Code Playgroud)
如果我将完全相同的字符串保存到变量中,bash 会迭代这些单词
sentence="this is a sentence"
for word in $sentence; do
echo $word
done
# => this
# is
# a
# sentence
Run Code Online (Sandbox Code Playgroud)
我有一个简单的sbt项目,我已添加"com.twitter" %% "finagle-http" % "6.33.0"
.我正在关注Twitter Finagle 的快速入门指南.我的代码是直接复制粘贴:
import com.twitter.finagle.{Http, Service}
import com.twitter.finagle.http
import com.twitter.util.{Await, Future}
object Client extends App {
val client: Service[http.Request, http.Response] = Http.newService("www.scala-lang.org:80")
val request = http.Request(http.Method.Get, "/")
request.host = "www.scala-lang.org"
val response: Future[http.Response] = client(request)
response.onSuccess { resp: http.Response =>
println("GET success: " + resp)
println(resp.contentString) // modification 1
}
Await.ready(response)
println("needed this") // modification 2
}
Run Code Online (Sandbox Code Playgroud)
没有" modification 2
"我根本没有输出.随着这一点println
,我得到了
needed this
GET success: Response("HTTP/1.1 Status(200)")
Process finished with …
Run Code Online (Sandbox Code Playgroud)