mysql - FLink 应用程序 - MySql 和 MongoDb 的接口(interface)

标签 mysql scala intellij-idea

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

<小时/>

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

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

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 交互的正确方法是什么?

最佳答案

Unbelievable IntelliJ does not update dependencies on rebuild command.

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

我删除并重新创建了工件文件。它有效 对于不必要的不​​便,我们深表歉意(你可以想象我的沮丧)。但对于那些在 IntelliJ 中开发的人来说,手动删除并重新创建工件是一个警告

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

关于mysql - FLink 应用程序 - MySql 和 MongoDb 的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49754053/

相关文章:

Scala 最佳实践 : mapping 2D data

java - 如何使这种情况更像 Scala

grails - 在 Intellij IDEA 中调试 Spock 测试

java - Jetty + intellij idea::添加库

php - 空 MySQL 查询结果没有按预期工作?

mysql 选择第 6 到第 10(自然顺序)记录

php - 通过 PHP 连接到 MySql 数据库句柄

scala - 似乎无法让Future在Scala中运行回调

php - 数据库连接数持续上升

kotlin - 查看Gradle依赖项的文档