Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Datapipeline throws "Unsupported major.minor version 52.0" #197

Closed
ZsoltPath opened this issue Apr 19, 2022 · 2 comments
Closed

Datapipeline throws "Unsupported major.minor version 52.0" #197

ZsoltPath opened this issue Apr 19, 2022 · 2 comments
Labels
Information required Further information is requested

Comments

@ZsoltPath
Copy link

Describe the issue
I've updated the driver to this in a Data Pipeline due to previous SSL errors.
Now it throws a "Unsupported major.minor version 52.0". I don't think it's possible to change the Java VM version in the DP runner instances.

Driver Version?
v1.0.0

Java Version?
no idea (AWS Data Pipeline runner default)

OS Version?
no idea (AWS Data Pipeline runner default)

MySQL Version?
Aurora MySQL 5.7

To Reproduce
Steps to reproduce the behaviour:

  • Upload the jar file to S3
  • Set up a Datapipeline with SQL source and point the drive to the S3 upload
  • Run the pipeline

Expected behaviour
Pipeline should read and process the RDS data
Instead it's throwing the error above

Logs

java.lang.UnsupportedClassVersionError: software/aws/rds/jdbc/mysql/Driver : Unsupported major.minor version 52.0 at
java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:808) at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at 
java.net.URLClassLoader.defineClass(URLClassLoader.java:443) at java.net.URLClassLoader.access$100(URLClassLoader.java:65) at 
java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.net.URLClassLoader$1.run(URLClassLoader.java:349) at 
java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:348) at 
java.lang.ClassLoader.loadClass(ClassLoader.java:430) at java.lang.ClassLoader.loadClass(ClassLoader.java:363) at 
java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:278) at 
amazonaws.datapipeline.database.JdbcDriverInitializer.getDriver(JdbcDriverInitializer.java:75) at 
amazonaws.datapipeline.database.ConnectionFactory.getJdbcDatabaseConnection(ConnectionFactory.java:223) at 
amazonaws.datapipeline.database.ConnectionFactory.getConnection(ConnectionFactory.java:76) at 
amazonaws.datapipeline.database.ConnectionFactory.getConnectionWithCredentials(ConnectionFactory.java:302) at 
amazonaws.datapipeline.connector.SqlDataNode.createConnection(SqlDataNode.java:100) at 
amazonaws.datapipeline.connector.SqlDataNode.getConnection(SqlDataNode.java:94) at 
amazonaws.datapipeline.connector.SqlDataNode.prepareStatement(SqlDataNode.java:162) at 
amazonaws.datapipeline.connector.SqlInputConnector.open(SqlInputConnector.java:49) at 
amazonaws.datapipeline.connector.SqlInputConnector.<init>(SqlInputConnector.java:26) at 
amazonaws.datapipeline.connector.SqlDataNode.getInputConnector(SqlDataNode.java:79) at 
amazonaws.datapipeline.activity.copy.SingleThreadedCopyActivity.processAll(SingleThreadedCopyActivity.java:47) at 
amazonaws.datapipeline.activity.copy.SingleThreadedCopyActivity.runActivity(SingleThreadedCopyActivity.java:35) at 
amazonaws.datapipeline.activity.CopyActivity.runActivity(CopyActivity.java:22) at 
amazonaws.datapipeline.objects.AbstractActivity.run(AbstractActivity.java:16) at 
amazonaws.datapipeline.taskrunner.TaskPoller.executeRemoteRunner(TaskPoller.java:136) at 
amazonaws.datapipeline.taskrunner.TaskPoller.executeTask(TaskPoller.java:105) at 
amazonaws.datapipeline.taskrunner.TaskPoller$1.run(TaskPoller.java:81) at 
private.com.amazonaws.services.datapipeline.poller.PollWorker.executeWork(PollWorker.java:76) at 
private.com.amazonaws.services.datapipeline.poller.PollWorker.run(PollWorker.java:53) at java.lang.Thread.run(Thread.java:748) 
@sergiyvamz
Copy link
Contributor

Hello @ZsoltPath

It seems that your AWS Data Pipeline runner uses default Java runtime and it's Java 7. AWS JDBC Driver for MySQL requires Java 8+. You may need to upgrade JRE on your pipeline runner by creating a custom AMI. More details can be found at AWS Data Pipeline documentation:

https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-custom-ami.html

@ZsoltPath
Copy link
Author

Hello @ZsoltPath

It seems that your AWS Data Pipeline runner uses default Java runtime and it's Java 7. AWS JDBC Driver for MySQL requires Java 8+. You may need to upgrade JRE on your pipeline runner by creating a custom AMI. More details can be found at AWS Data Pipeline documentation:

https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-custom-ami.html

That's a bugger! :(
Then I need to maintain that AMI, update it, etc.

But thanks for the solution!

@hsuamz hsuamz closed this as completed May 30, 2022
@hsuamz hsuamz added the Information required Further information is requested label May 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Information required Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants