FLink应用程序-MySql和MongoDb接口
这篇文章被标记为删除,因为问题是IDE没有创建正确的jar,因此代码交互也有问题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.
我有一个小的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中开发的人来说,手动删除并重新创建工件是一个警告
解决方案:
(文件->项目结构->工件->(-)删除上一个->(+)创建新的->选择主类)