[英]Flink RMQSource
我想测试RMQSource类以从RabbitMQ接收数据,但是我不知道如何为我的交换配置Rabbit虚拟主机,我认为这是我遇到的问题。 我的代码:
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.streaming.connectors.rabbitmq.RMQSource
import org.apache.flink.streaming.util.serialization.SimpleStringSchema
object rabbitjob {
val env = StreamExecutionEnvironment.getExecutionEnvironment
val stream = env.addSource(new RMQSource[String]("192.168.1.11", 5672,"user","pass", "inbound.input.data",false, new SimpleStringSchema())).print
def main (args:Array[String]){
env.execute("Test Rabbit")
}
}
IntelliJ IDE中的Error:(10, 29) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String] val stream = env.addSource(new RMQSource[String]("192.168.1.11", 5672,"user","pass", "inbound.input.data",false, new SimpleStringSchema())).print
: Error:(10, 29) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String] val stream = env.addSource(new RMQSource[String]("192.168.1.11", 5672,"user","pass", "inbound.input.data",false, new SimpleStringSchema())).print
^
Error:(10, 29) not enough arguments for method addSource: (implicit evidence$7: org.apache.flink.api.common.typeinfo.TypeInformation[String])org.apache.flink.streaming.api.scala.DataStream[String]. Unspecified value parameter evidence$7. val stream = env.addSource(new RMQSource[String]("192.168.1.11", 5672,"user","pass", "inbound.input.data",false, new SimpleStringSchema())).print
^
任何想法如何解决它或替代方案? 先感谢您。
事情随着时间而改变。 请看一下RMQConnectionConfig :在这里您可以找到通过构建器模式指定虚拟主机的方法。
您还需要提供虚拟主机名。 看看AMQP URI规范 。
在您的情况下,整个AMQP URI看起来应该是"user:pass@192.168.1.11:5672/TestVHost"
。
您看到的错误是Scala编译时错误,是由于某些所需的导入不存在而导致的。 每当使用Flink Scala API时,都应包括以下内容:
import org.apache.flink.api.scala._
这将解决您遇到的编译时问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.