我正在阅读最新文档页面中的Spark Streaming kafka集成指南,该页面基于Kafka 010版本。
http://spark.apache.org/docs/latest/streaming-kafka-0-10-integration.html#creating-a-direct-stream
我可以看到其中一个卡夫卡参数是if (!ip_address) {
local.sin_addr.s_addr = INADDR_ANY;
} else {
local.sin_addr.s_addr = inet_addr(ip_address);
}
我认为在使用DirectStream方法时,我们不必将"group.id" -> "example"
作为参数之一传递。我对此文档感到困惑。 group.id和Spark Streaming Direct Stream方法之间的关系是什么。
答案 0 :(得分:0)
casper.start('URL', function() {
...
});
casper.thenEvaluate(function(){
document.getElementById('sign_in').click();
});
casper.wait(5000, function(){
this.captureSelector('InitialPage_1.png','body');
this.echo(this.getCurrentUrl());
});
casper.run();
是一种Kafka使用者配置,用于将一组使用者进程分组到一个组中,以便可以将每个Kafka分区分配给该组中的一个节点。
查看Kafka Consumer Configuration,该参数是可选的,除非我们使用基于Kafka的偏移管理(Spark Streaming不使用其直接方法)。所以它应该是一个可选参数。
另外看一下Spark Kafka Direct DStream的源代码,spark并没有添加客户端没有设置的其他Kafka参数。因此,如果没有给出,group.id
将默认为空字符串。
一般情况下,当您拥有同一个Kafka主题的多个消费者(火花流媒体作业,akka应用程序等)并且您不想要所有这些消息时,需要使用消费者群组ID属于同一群体(如果你不给所有群体提供群组身份,他们会这样做)。因此,我认为将每个消费者群体命名为自己的组ID是一种很好的做法。如果您在Kafka周围使用操作工具,那么如果您正确命名它们,它也会显示每个消费者组。