繁体   English   中英

FLink应用程序-MySql和MongoDb的接口

[英]FLink Application - interface to MySql and MongoDb

这篇文章被标记为删除 ,因为在未创建正确的jar时IDE存在问题,因此代码交互存在问题


我有一个小的flink应用程序,它从kafka主题读取,需要在处理它之前查询主题(x)的输入是否存在于MySql数据库的列中(不理想,但当前要求)

当我通过IDE(Intellij)运行应用程序时->它有效 但是,当我将作业提交到flink服务器时,它无法基于驱动程序打开连接

来自Flink Server的错误

// ERROR
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)

// ---------------------
// small summary of MAIN
// ---------------------
Get Data from Source (x)
source.map(x => {
  // open connection (Fails to open)
  // check if data exist in db
})


// -------------------------------------
// open connection function (Scala Code)
// -------------------------------------
def openConnection() : Boolean = {

try {
  // - set driver
  Class.forName("com.mysql.jdbc.Driver")
  // - make the connection
  connection = DriverManager.getConnection(url, user, pswd)
  // - set status controller
  connection_open = true
}
catch {
  // - catch error
  case e: Throwable => e.printStackTrace
  // - set status controller
  connection_open = false
}

// return result
return connection_open
}

1)从flink应用程序连接到MySql数据库的正确方法是什么?

2)我还将在以后的阶段中与MongoDB进行类似的交互,从FLink与MongoDB交互的正确方法是什么?

令人难以置信的IntelliJ不会更新对重建命令的依赖关系。

在IntelliJ中,您必须删除并重新设置工件创建器,以添加所有依赖项。 (构建,清理,重建,删除)不会更新其设置。

我删除并重新创建了工件文件。 很抱歉造成不必要的麻烦(如您所见,我很沮丧)。 但是对于那些在IntelliJ中进行开发的人来说,手动删除和重新创建工件是一个警告。

解决方案:(文件->项目结构->工件->(-)删除上一个->(+)创建一个新的->选择主类)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM