[
https://issues.apache.org/jira/browse/FLINK-2288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14616791#comment-14616791
]
ASF GitHub Bot commented on FLINK-2288:
---------------------------------------
Github user StephanEwen commented on a diff in the pull request:
https://github.com/apache/flink/pull/886#discussion_r34047058
--- Diff:
flink-runtime/src/main/scala/org/apache/flink/runtime/jobmanager/JobManager.scala
---
@@ -993,9 +1000,34 @@ object JobManager {
configuration.setString(ConfigConstants.FLINK_BASE_DIR_PATH_KEY,
configDir + "/..")
}
- val hostname =
configuration.getString(ConfigConstants.JOB_MANAGER_IPC_ADDRESS_KEY, null)
- val port =
configuration.getInteger(ConfigConstants.JOB_MANAGER_IPC_PORT_KEY,
- ConfigConstants.DEFAULT_JOB_MANAGER_IPC_PORT)
+ // HA mode
+ val (hostname, port) = if
(ZooKeeperUtil.isJobManagerHighAvailabilityEnabled(configuration)) {
+ // TODO @removeme @tillrohrmann This is the place where the host and
random port for JM is
+ // chosen. For the FlinkMiniCluster you have to choose it on your
own.
+ LOG.info("HA mode.")
+
+ if (config.getHost == null) {
--- End diff --
Across Java/Scala, this is a tricky discussion.
It holds if you are within the Scala Ecosystem. There, you define a method
with parenthesis, or without. The definition of the method clearly indicates
the purity.
When cross-referencing Java methods, that does not work any more. The
implementer cannot state the purity of the method. Letting the caller call the
method in a way that he hopes the method behaves is not very clean.
In this case it works, but we have a lot of our Java methods start with
`get` and have side effects. They get called without parenthesis frequently,
because IDEs suggest that methods starting with `get` should have no
parenthesis (which assumes all Java code ever was written with Scala semantics
assumed).
To be consistent in Scala means calling empty-parenthesis methods with
parenthesis. I find it strange to not apply the same principle to Java methods
(which are all defined as empty-parenthesis methods).
> Setup ZooKeeper for distributed coordination
> --------------------------------------------
>
> Key: FLINK-2288
> URL: https://issues.apache.org/jira/browse/FLINK-2288
> Project: Flink
> Issue Type: Sub-task
> Components: JobManager, TaskManager
> Reporter: Ufuk Celebi
> Assignee: Ufuk Celebi
> Fix For: 0.10
>
>
> Having standby JM instances for job manager high availabilty requires
> distributed coordination between JM, TM, and clients. For this, we will use
> ZooKeeper (ZK).
> Pros:
> - Proven solution (other projects use it for this as well)
> - Apache TLP with large community, docs, and library with required "recipies"
> like leader election (see below)
> Related Wiki:
> https://cwiki.apache.org/confluence/display/FLINK/JobManager+High+Availability
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)