dbcp2 全局 连接池
来源:5-14 自定义Sink之功能测试

LucienLi
2019-09-12
老师,
你好,我最近开发遇到了一个问题,我在flink里面设置了一个DB连接池,用dbcp2实现的,是一个scala object 叫做DBPool, 然后在一个sink里面每次invoke调用getConnection 写数据,开发很顺利,用intellij在local运行也完全没有问题,但是用第一种方式部署到yarn上面之后,getConnection每次都是空指针异常,不知道是什么原因,代码我贴上来
写回答
3回答
-
LucienLi
提问者
2019-09-12
我发现是scala的单例写的有问题,换成java的单例连接就没问题了,不知道scala单例哪里写错了?
012019-09-12 -
LucienLi
提问者
2019-09-12
我修改了一下代码,在入口文件调用DBPool初始化,可以看到第一行就打印出来了,之后在sink里面DBPool的getDataSource,返回空指针异常,我想问下会不会是在yarn上面内存中没法存储全局使用的单例对象,或者是并行度什么的造成的影响?
00 -
Michael_PK
2019-09-12
几个可能存在问题的点:1)connection用完应该不是close而是返回到PO OL中;2)跑yarn的时候是否加载到了MySQL驱动?
022019-09-12
相似问题