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

Feast Core: Stage files manually when launching Dataflow jobs #291

Merged

Conversation

davidheryanto
Copy link
Collaborator

@davidheryanto davidheryanto commented Nov 6, 2019

To resolve error when launching Dataflow jobs from Feast Core:

Caused by: java.lang.IllegalArgumentException: Unable to convert url (jar:file:/opt/feast/core/target/feast-core-0.3.0-SNAPSHOT.jar!/BOOT-INF/classes!/) to file.
	at org.apache.beam.runners.core.construction.PipelineResources.detectClassPathResourcesToStage(PipelineResources.java:67)
	at org.apache.beam.runners.dataflow.DataflowRunner.fromOptions(DataflowRunner.java:285)
	... 38 common frames omitted

When Feast Core starts from a packaged jar.

Reference:
https://stackoverflow.com/questions/48961440/illegalargumentexception-unable-to-convert-url-jarfile-app-jar-boot-inf-cla

https://stackoverflow.com/questions/48292491/java-dataflow-unable-to-use-classloader-to-detect-classpath-elements

To resolve error: IllegalArgumentException: Unable to convert url
When launching Dataflow jobs in Feast Core
@feast-ci-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: davidheryanto

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@davidheryanto davidheryanto changed the title Feast Core: Set files to stage manually when launching Dataflow jobs Feast Core: Stage files manually when launching Dataflow jobs Nov 6, 2019
@davidheryanto
Copy link
Collaborator Author

davidheryanto commented Nov 7, 2019

/hold
Stil have issues when the Dataflow job is starting up.

 A JNI error has occurred, please check your installation and try again
Caused by: java.lang.ClassNotFoundException: org.apache.beam.vendor.guava.v26_0_jre.com.google.common.graph.Network

Reference:
https://stackoverflow.com/questions/40099952/launching-dataflow-jobs-from-a-java-application?rq=1

…flow

- Unpack the jar created by Spring Boot
- Set the classes and jars in BOOT-INF folder as the resources to stage
@feast-ci-bot feast-ci-bot added size/L and removed size/S labels Nov 7, 2019
@davidheryanto
Copy link
Collaborator Author

davidheryanto commented Nov 8, 2019

New approach that unpack the packaged jar and stage the files manually when trying to submit Dataflow jobs from Feast Core seems to work.

But the extractJar method is too slow . Takes more than 5 minutes to unpack Feast Core jar using extractJar method in this commit.

As a comparison, using unar command takes less than 10 seconds to unpack the jar.

@davidheryanto
Copy link
Collaborator Author

Current workaround for the slow unpacking of jar when running Feast in production:
9ba7c90

@davidheryanto
Copy link
Collaborator Author

/hold cancel

@zhilingc
Copy link
Collaborator

/lgtm

@zhilingc
Copy link
Collaborator

/retest

@feast-ci-bot feast-ci-bot merged commit e11d178 into feast-dev:0.3-dev Nov 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants