Skip to content

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

Merged
feast-ci-bot merged 4 commits into
feast-dev:0.3-devfrom
davidheryanto:core-dataflow-job-submit-fix
Nov 11, 2019
Merged

Feast Core: Stage files manually when launching Dataflow jobs#291
feast-ci-bot merged 4 commits into
feast-dev:0.3-devfrom
davidheryanto:core-dataflow-job-submit-fix

Conversation

@davidheryanto
Copy link
Copy Markdown
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
Copy Markdown
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

Details 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
Comment thread core/src/main/java/feast/core/job/dataflow/DataflowJobManager.java Outdated
@davidheryanto
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Collaborator Author

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

@davidheryanto
Copy link
Copy Markdown
Collaborator Author

/hold cancel

@zhilingc
Copy link
Copy Markdown
Collaborator

/lgtm

@zhilingc
Copy link
Copy Markdown
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