Łukasz Gajowy created BEAM-3370:
-----------------------------------
Summary: Add ability to stage directories with compiled classes to
Flink
Key: BEAM-3370
URL: https://issues.apache.org/jira/browse/BEAM-3370
Project: Beam
Issue Type: New Feature
Components: runner-flink
Reporter: Łukasz Gajowy
Assignee: Aljoscha Krettek
Priority: Minor
Currently, when _filesToStage_ contain a path to directory with resources,
flink runner throws a {{"java.io.FileNotFoundException: <path_to_the_dir> (Is a
directory)"}}. A way to include directory resources would be helpful.
This "blocker" occurs while trying to run IOITs on flink runner, which
basically makes it impossible/very inconvenient to run. When the tests are run
via "mvn verify" command, a "test-classes" *directory* gets detected by
detectClasspathResourcesToStage() method which in turn causes the above error.
One way to solve this issue is to package the directories to jars with unique
names and update the paths accordingly before staging the files on flink.
Something similar is already done in the Dataflow runner
([GcsStager|https://github.com/apache/beam/blob/cd186a531aaff0b21cf009b034e1a41f7e7b64af/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/util/GcsStager.java#L74]),
more specifically in
[PackageUtil|https://github.com/apache/beam/blob/cd186a531aaff0b21cf009b034e1a41f7e7b64af/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/util/PackageUtil.java#L280]
class. We are able to run the tests on dataflow thanks to that.
As I checked in a [small experiment of
mine|https://github.com/lgajowy/beam/commits/spark-and-flink-run-tests],
providing analogous change makes it possible to run the tests on a Flink
cluster.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)