I am trying to upgrade EMR
from 5.13
to 5.35
using spark-2.4.8
. The jar I'm trying to use has a dependency on HikariCP:4.0.3
which is called to set the db pool-config setKeepaliveTime
. While I can run my job fine on my local machine, it bombs out in EMR-5.35
with the following error:
java.lang.NoSuchMethodError: com.zaxxer.hikari.HikariConfig.setKeepaliveTime(J)
The problem is, in runtime, the HikariConfig
is being loaded from file:/usr/lib/spark/jars/HikariCP-java7-2.4.12.jar
instead of what was provided as a dependency in my custom/fat jar. The workaround right now is to remove that jar, but is there an elegant way to know where that jar is coming from just on the EMR and how could we remove that on start-up?