GitHub user NicoK opened a pull request:
https://github.com/apache/flink/pull/2911
[FLINK-5178] allow BLOB_STORAGE_DIRECTORY_KEY to point to a distributed
file system
Previously, this was restricted to a local file system path but now we can
allow it to be distributed, too, which is therefore not restricted to HA
mode anymore.
Example for hdfs: `blob.storage.directory=hdfs:///flink/data/`
Unfortunately, we cannot detect the case when a locally-mounted distributed
file system is used. In this case, we require the user to give us a hint,
e.g.:
`blob.storage.directory=dfs:///flink/data/`
for a file system mounted to `/flink/data/`. If this hint is missing, each
job manager and task manager will create its own unique storage directory
under
this path and files will be requested from the blob server at the job
manager
as usual, i.e. the task manager requests a blob from the blob server which
reads the file from the file system and sends it back where it is stored in
the task manager's individual storage path of the same file system.
BEWARE: If HA mode is configured and a local file system without the
`dfs://`
hint is given as HA_STORAGE_PATH, an IllegalConfigurationException will be
thrown!
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/NicoK/flink FLINK-5178
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/flink/pull/2911.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #2911
----
commit b65e74dd92bdf74b2816a0d8a26a5ebaa25ca586
Author: Nico Kruber <[email protected]>
Date: 2016-11-22T11:49:03Z
[hotfix] remove unused package-private BlobUtils#copyFromRecoveryPath
This was actually the same implementation as
FileSystemBlobStore#get(java.lang.String, java.io.File) and either of the
two
could have been removed but the implementation makes most sense at the
concrete file system abstraction layer, i.e. in FileSystemBlobStore.
commit 09bdd49e6282268fd9c1b2672f0ea6222e097ca2
Author: Nico Kruber <[email protected]>
Date: 2016-11-23T15:11:35Z
[hotfix] do not create intermediate strings inside String.format in
BlobUtils
commit 93938ff97fef9e39c17ac795e1e89ca9de25e028
Author: Nico Kruber <[email protected]>
Date: 2016-11-24T16:11:19Z
[hotfix] properly shut down the BlobServer in BlobServerRangeTest
commit c0c9d2239a767154d6071171d4c33e762e01aa62
Author: Nico Kruber <[email protected]>
Date: 2016-11-24T17:50:43Z
[FLINK-5129] BlobServer: include the cluster id in the HA storage path for
blobs
Also use JUnit's TemporaryFolder in BlobRecoveryITCase, too. This makes
cleaning up simpler.
commit 8b9c7d9fd6e1ab3c7f2175a31d0e29b41b01cc61
Author: Nico Kruber <[email protected]>
Date: 2016-11-23T18:50:52Z
[FLINK-5129] make the BlobCache use the HA filesystem back-end properly
Previously, the BlobServer holds a local copy and in case high availability
(HA)
is set, it also copies jar files to a distributed file system. Upon restore,
these files are copied to local store from which they are used.
This commit abstracts the BlobServer's backing file system and makes it use
the
distributed file system directly in HA mode, i.e. without the local file
system
copy. Other than that the behaviour does not change.
commit 249b2ea48f19c54498faa56ad45d299efaad4521
Author: Nico Kruber <[email protected]>
Date: 2016-11-25T16:42:05Z
[FLINK-5129] make the BlobCache also use a distributed file system in HA
mode
* re-factor the file system abstraction in FileSystemBlobStore so that it
can
be used by the task managers, too, which should not be able to delete
files
in a distributed file system shared among different nodes
* only download blobs from the blob server if not in HA mode or the
distributed
file system is not accessible by the BlobCache, e.g. at the task managers
commit dd69f65a47205eb55ac8cc2c8f3aa9f7232dc8ba
Author: Nico Kruber <[email protected]>
Date: 2016-11-28T10:42:13Z
[FLINK-5129] restore non-HA mode unique directory setup in the blob server
and cache
If not in high availability mode, local (and now also distributed) file
systems
again try to set up a unique directory structure so that other instances
with
the same configuration file or storage path do not interfere.
This was lost in 8b9c7d9fd6.
commit 76ccc9ffaaa63d6e0bd55ba7f6c08f8c1cff98cb
Author: Nico Kruber <[email protected]>
Date: 2016-11-28T15:19:20Z
[hotfix] add a missing "'" to FileSystemBlobStore
commit 53702add38d1087062e84a7e804b08920dfc0c23
Author: Nico Kruber <[email protected]>
Date: 2016-11-28T15:41:11Z
[FLINK-5129] move path-related methods from BlobUtils to
FileSystemBlobStore and cleanup unused methods
commit d45e4615f422ff3cf1b66e6388a0929e366df128
Author: Nico Kruber <[email protected]>
Date: 2016-11-29T15:50:57Z
[FLINK-5129] BlobService#delete does not throw an IOException anymore
Instead, the return value indicates whether a delete operation was
successful.
This is a result of the FileSystem abstraction layer in FileSystemBlobStore
and follows the idiom that a failing delete operation is not that grave and
the program can still continue.
commit fe4c1c331d803675f2241f8179e452ea8153cb38
Author: Nico Kruber <[email protected]>
Date: 2016-11-29T17:43:41Z
[FLINK-5129] fix wrongly set isGlobal flag in BlobCache
This was set in 249b2ea48f.
commit 022817cc47c437f2476f5dad322b3936d1754ac2
Author: Nico Kruber <[email protected]>
Date: 2016-11-30T13:30:29Z
[FLINK-5129] add a unit test for the fix of fe4c1c331d
commit 660eba522b88ee036964d23a5dfbab5182c7cd40
Author: Nico Kruber <[email protected]>
Date: 2016-11-30T13:52:12Z
[FLINK-5129] add some more documentation
commit 4a2445bc502d9f20b145c9c094214591fb57165a
Author: Nico Kruber <[email protected]>
Date: 2016-11-28T15:24:28Z
[FLINK-5178] allow BLOB_STORAGE_DIRECTORY_KEY to point to a distributed
file system
Previously, this was restricted to a local file system path but now we can
allow it to be distributed, too, which is therefore not restricted to HA
mode anymore.
Example for hdfs: `blob.storage.directory=hdfs:///flink/data/`
Unfortunately, we cannot detect the case when a locally-mounted distributed
file system is used. In this case, we require the user to give us a hint,
e.g.:
`blob.storage.directory=dfs:///flink/data/`
for a file system mounted to `/flink/data/`. If this hint is missing, each
job manager and task manager will create its own unique storage directory
under
this path and files will be requested from the blob server at the job
manager
as usual, i.e. the task manager requests a blob from the blob server which
reads the file from the file system and sends it back where it is stored in
the task manager's individual storage path of the same file system.
BEWARE: If HA mode is configured and a local file system without the
`dfs://`
hint is given as HA_STORAGE_PATH, an IllegalConfigurationException will be
thrown!
commit 6e0ee197c57c46c393b77a65007e8a7c9f5d2ec4
Author: Nico Kruber <[email protected]>
Date: 2016-11-29T17:11:06Z
[hotfix] re-use some code in BlobServerDeleteTest
commit 7cc8c9086428074decb1ccf37fa85925f2705add
Author: Nico Kruber <[email protected]>
Date: 2016-11-29T14:20:07Z
[FLINK-5178] test cases for using a shared blob storage directory
commit 454a659e38a241ef5f33016925879c1545413689
Author: Nico Kruber <[email protected]>
Date: 2016-11-30T13:35:38Z
[hotfix] improve some failure messages in the BlobService's HA unit tests
commit e714bc91bbb407beb6f5f6dd0d560dfb17629a82
Author: Nico Kruber <[email protected]>
Date: 2016-11-30T13:55:34Z
[FLINK-5178] adapt unit tests to the latest changes in the FLINK-5129 branch
commit 02bbdf2268a10a505bc6461b5e12cd5b25ba25f6
Author: Nico Kruber <[email protected]>
Date: 2016-11-30T14:39:54Z
[FLINK-5178] add more documentation for the updated config options
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---