FLink应用程序-MySql和MongoDb接口

FLink应用程序-MySql和MongoDb接口,mysql,scala,intellij-idea,Mysql,Scala,Intellij Idea,这篇文章被标记为删除,因为问题是IDE没有创建正确的jar,因此代码交互也有问题 我有一个小的flink应用程序,读取卡夫卡主题, 在处理之前,需要查询来自主题(x)的输入是否存在于MySql数据库的一列中(不理想,但它是当前的需求) 当我通过IDE(Intellij)->运行应用程序时,它可以运行。 但是,当我将作业提交到flink server时,它无法基于驱动程序打开连接 Flink服务器出错 // ERROR java.lang.ClassNotFoundException: com.

这篇文章被标记为删除,因为问题是IDE没有创建正确的jar,因此代码交互也有问题


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

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

Flink服务器出错

// 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中开发的人来说,手动删除并重新创建工件是一个警告

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