From 5630cede8d2d6f7eb75288735d41131555f18e7a Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Mon, 27 Nov 2017 15:27:32 -0800 Subject: [PATCH] HBASE-19354 [branch-1] Build using a jdk that is beyond ubuntu trusty's openjdk-151 Amend our DockerFile so it gets jdks from azul repo. --- dev-support/docker/Dockerfile | 42 ++++++++++++++-------- .../java/org/apache/hadoop/hbase/JMXListener.java | 13 ++++--- 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile index 2605e2c010..f706e4f5d8 100644 --- a/dev-support/docker/Dockerfile +++ b/dev-support/docker/Dockerfile @@ -63,29 +63,43 @@ RUN apt-get -q update && apt-get -q install --no-install-recommends -y \ rsync \ snappy \ zlib1g-dev \ - wget \ - openjdk-7-jdk + wget + +#### +# Apps that require Java. +# Maven and ant depend on ubuntu trusty's headless jdk7. The install of +# maven and ant will pull down this jdk even though we don't want it. +# Do the maven and ant install here rather than later where the jdk7 +# will overwrite the jdk7 we actually want to use. See next section on jdks. +### +RUN apt-get -q update && apt-get -q install --no-install-recommends -y \ + ant \ + maven ####### -# OpenJDK 8 +# Install jdk7 and jdk8. ####### - +# The jdks in ubuntu trusty don't work. HDFS hangs on openjdk-7 151. +# See HBASE-19204. So, we use the azul jdks because they are available, and +# later versions of openjdk (openjdk-7 161). Below we add the azul repo and +# then install its jdks. We then move aside the headless jdk7 added above +# when we added maven and ant and rename the azul jvms as +# though they were from openjdk (otherwise yetus won't set JAVA_HOME; +# it does find /usr/lib/jvm/ -name java-* -type d so a symlink to the zulu jvms +# won't work). RUN echo "dot_style = mega" > "/root/.wgetrc" RUN echo "quiet = on" >> "/root/.wgetrc" - -RUN apt-get -q update && apt-get -q install --no-install-recommends -y software-properties-common -RUN add-apt-repository -y ppa:openjdk-r/ppa +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0x219BD9C9 +RUN apt-get -q update && apt-get -q install --no-install-recommends -y software-properties-common python-software-properties +RUN apt-add-repository 'deb http://repos.azulsystems.com/ubuntu stable main' RUN apt-get -q update -RUN apt-get -q install --no-install-recommends -y openjdk-8-jdk +RUN apt-get -q install --no-install-recommends -y zulu-8 zulu-7 RUN update-alternatives --config java RUN update-alternatives --config javac +RUN mv /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/moved.java-7-openjdk-amd64 +RUN mv /usr/lib/jvm/zulu-7-amd64 /usr/lib/jvm/java-7-openjdk-amd64 +RUN mv /usr/lib/jvm/zulu-8-amd64 /usr/lib/jvm/java-8-openjdk-amd64 -#### -# Apps that require Java -### -RUN apt-get -q update && apt-get -q install --no-install-recommends -y \ - ant \ - maven # Fixing the Apache commons / Maven dependency problem under Ubuntu: # See http://wiki.apache.org/commons/VfsProblems diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java index 9265fb8d2f..005a905cd0 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java @@ -40,11 +40,16 @@ import javax.management.remote.JMXServiceURL; import javax.management.remote.rmi.RMIConnectorServer; /** - * Pluggable JMX Agent for HBase(to fix the 2 random TCP ports issue + * Pluggable JMX Agent for HBase (to fix the 2 random TCP ports issue * of the out-of-the-box JMX Agent): - * 1)connector port can share with the registry port if SSL is OFF - * 2)support password authentication - * 3)support subset of SSL (with default configuration) + *
    + *
  1. connector port can share with the registry port if SSL is OFF + *
  2. + *
  3. support password authentication + *
  4. + *
  5. support subset of SSL (with default configuration) + *
  6. + *
*/ public class JMXListener implements Coprocessor { -- 2.11.0 (Apple Git-81)