You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by GitBox <gi...@apache.org> on 2020/06/09 15:47:06 UTC

[GitHub] [hbase] ndimiduk opened a new pull request #1871: HBASE-24005 Document maven invocation with JDK11

ndimiduk opened a new pull request #1871:
URL: https://github.com/apache/hbase/pull/1871


   Follow-on to [HBASE-23997](https://issues.apache.org/jira/browse/HBASE-23997), #1844.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] ndimiduk commented on a change in pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
ndimiduk commented on a change in pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#discussion_r437707270



##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -397,28 +396,109 @@ mvn clean install -DskipTests
 See the <<hbase.unittests.cmds,hbase.unittests.cmds>> section in <<hbase.unittests,hbase.unittests>>
 
 [[maven.build.hadoop]]
-==== Building against various hadoop versions.
+==== Building against various Hadoop versions
+
+HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts).
+Exactly which version of Hadoop is used by default varies by release branch. See the section
+<<hadoop,Hadoop>> for the complete breakdown of supported Hadoop version by HBase release.
+
+The mechanism for selecting a Hadoop version at build time is identical across all releases. Which
+version of Hadoop is default varies. We manage Hadoop major version selection by way of Maven
+profiles. Due to the peculiarities of Maven profile mutual exclusion, the profile that builds
+against a particular Hadoop version is activated by setting a property, *not* the usual profile
+activation. Hadoop version profile activation is summarized by the following table.
+
+.Hadoop Profile Activation by HBase Release
+[cols="3*^.^", options="header"]
+|===
+| | Hadoop2 Activation | Hadoop3 Activation
+| HBase 1.3+ | _active by default_ | `-Dhadoop.profile=3.0`
+| HBase 3.0+ | _not supported_ | _active by default_
+|===
+
+[WARNING]
+====
+Please note that where a profile is active by default, `hadoop.profile` must NOT be provided.
+====
+
+Once the Hadoop major version profile is activated, the exact Hadoop version can be
+specified by overriding the appropriate property value. For Hadoop2 versions, the property name
+is `hadoop-two.version`. With Hadoop3 versions, the property name is `hadoop-three.version`.
 
-HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts). By default we build against Hadoop 2.x.
+.Example 1, Building HBase 1.7 against Hadoop 2.10.0
 
-To build against a specific release from the Hadoop 2.y line, set e.g. `-Dhadoop-two.version=2.6.3`.
+For example, to build HBase 1.7 against Hadoop 2.10.0, the profile is set for Hadoop2 by default,
+so only `hadoop-two.version` must be specified:
 
 [source,bourne]
 ----
-mvn -Dhadoop-two.version=2.6.3 ...
+git checkout branch-1
+mvn -Dhadoop-two.version=2.10.0 ...
 ----
 
-To change the major release line of Hadoop we build against, add a hadoop.profile property when you invoke +mvn+:
+.Example 2, Building HBase 2.3 against Hadoop 3.3.0-SNAPSHOT

Review comment:
       @busbey updated the language around the SNAPSHOT dependency, let me know if this satisfies.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#issuecomment-640793518






----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] ndimiduk commented on pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
ndimiduk commented on pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#issuecomment-641616500


   Thanks for the reviews!


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] ndimiduk commented on a change in pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
ndimiduk commented on a change in pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#discussion_r436975661



##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       I called out that this is applicable to 2.3, up through but excluding 3.0. You think having this documented here will be confusing? Should I point out how 3.0 is different?

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       My intention (and I believe it's common practice for all release managers) is to make a blanket-copy of the docs from master back to branch-2 and branch-2.3. I've staged the commit locally and skimming through, I haven't found much content that's applicable to master but not branch-2/.3. 

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       I think the earlier section, [Building against various hadoop versions](http://hbase.apache.org/book.html#maven.build.hadoop) needs updated in light of the point you've raised here. Nice find.

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       I've updated that text as well, let me know if it satisfies.

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       Bah. Now I need to update this text to refer back to what I just wrote.

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -397,28 +396,109 @@ mvn clean install -DskipTests
 See the <<hbase.unittests.cmds,hbase.unittests.cmds>> section in <<hbase.unittests,hbase.unittests>>
 
 [[maven.build.hadoop]]
-==== Building against various hadoop versions.
+==== Building against various Hadoop versions
+
+HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts).
+Exactly which version of Hadoop is used by default varies by release branch. See the section
+<<hadoop,Hadoop>> for the complete breakdown of supported Hadoop version by HBase release.
+
+The mechanism for selecting a Hadoop version at build time is identical across all releases. Which
+version of Hadoop is default varies. We manage Hadoop major version selection by way of Maven
+profiles. Due to the peculiarities of Maven profile mutual exclusion, the profile that builds
+against a particular Hadoop version is activated by setting a property, *not* the usual profile
+activation. Hadoop version profile activation is summarized by the following table.
+
+.Hadoop Profile Activation by HBase Release
+[cols="3*^.^", options="header"]
+|===
+| | Hadoop2 Activation | Hadoop3 Activation
+| HBase 1.3+ | _active by default_ | `-Dhadoop.profile=3.0`
+| HBase 3.0+ | _not supported_ | _active by default_
+|===
+
+[WARNING]
+====
+Please note that where a profile is active by default, `hadoop.profile` must NOT be provided.
+====
+
+Once the Hadoop major version profile is activated, the exact Hadoop version can be
+specified by overriding the appropriate property value. For Hadoop2 versions, the property name
+is `hadoop-two.version`. With Hadoop3 versions, the property name is `hadoop-three.version`.
 
-HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts). By default we build against Hadoop 2.x.
+.Example 1, Building HBase 1.7 against Hadoop 2.10.0
 
-To build against a specific release from the Hadoop 2.y line, set e.g. `-Dhadoop-two.version=2.6.3`.
+For example, to build HBase 1.7 against Hadoop 2.10.0, the profile is set for Hadoop2 by default,
+so only `hadoop-two.version` must be specified:
 
 [source,bourne]
 ----
-mvn -Dhadoop-two.version=2.6.3 ...
+git checkout branch-1
+mvn -Dhadoop-two.version=2.10.0 ...
 ----
 
-To change the major release line of Hadoop we build against, add a hadoop.profile property when you invoke +mvn+:
+.Example 2, Building HBase 2.3 against Hadoop 3.3.0-SNAPSHOT

Review comment:
       Is it that much of a problem? I could simply drop the `SNAPSHOT` bits and update the language to sound like that version was already released. It'll eventually be accurate...
   
   I could also edit the example context slightly, saying "this is how a developer of Hadoop might verify the compatibility of a recent Hadoop  build against a recent hbase build."




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] ndimiduk merged pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
ndimiduk merged pull request #1871:
URL: https://github.com/apache/hbase/pull/1871


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] virajjasani commented on a change in pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
virajjasani commented on a change in pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#discussion_r436954122



##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       By specifying `-Dhadoop.profile=3.0`, users are consistent across all JDK 11 supported branches. For instance, branch-2 has `hadoop-2.0` active by default I believe. Hence, with this doc, users can try `-Dhadoop.profile=3.0` for all supported branches and there is no harm with master branch also. This should be fine. Thought?

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       Oh okk, got it. Thanks




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] HorizonNet commented on a change in pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
HorizonNet commented on a change in pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#discussion_r436925429



##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK

Review comment:
       NIT: In some sections "Maven" with an upper-case "M" is used. Here it is lower-cased. I think it is better to stay consistent.

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       Is this really necessary as the `hadoop-3.0` profile is active by default (at least on master)? Or better state it to make it generic for all mentioned releases?

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -420,6 +419,27 @@ Tests may not all pass so you may need to pass `-DskipTests` unless you are incl
 
 To pick a particular Hadoop 3.y release, you'd set hadoop-three.version property e.g. `-Dhadoop-three.version=3.0.0`.
 
+[[maven.build.jdk11_hadoop3]]
+==== Building with JDK11 and Hadoop3
+
+The following guidance applies to HBase versions [2.3, 3), where both JDK8 and JDK11 are supported,
+and both Hadoop2 and Hadoop3 are supported.
+
+HBase manages JDK-specific build settings using maven profiles. The profile appropriate to the JDK
+in use is automatically selected. JDK8 supports both Hadoop2 and Hadoop3. For JDK11, only Hadoop3
+is supported, which means you must specify `-Dhadoop.profile=3.0` when building with JDK11.

Review comment:
       That's what I meant by the second question. For me it's totally fine. Just wanted to shortly discuss if we should make a distinction between the different releases or not.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#issuecomment-641566105


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   1m 51s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   ||| _ Patch Compile Tests _ |
   ||| _ Other Tests _ |
   |  |   |   3m  0s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.11 Server=19.03.11 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1871/5/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/1871 |
   | Optional Tests |  |
   | uname | Linux f5fa1888d91c 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 474d200daa |
   | Max. process+thread count | 47 (vs. ulimit of 12500) |
   | modules | C: . U: . |
   | Console output | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1871/5/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) |
   | Powered by | Apache Yetus 0.11.1 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#issuecomment-641584181


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   1m 50s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files found.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any @author tags.  |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 45s |  master passed  |
   | +0 :ok: |  refguide  |   4m 49s |  branch has no errors when building the reference guide. See footer for rendered docs, which you should manually inspect.  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 18s |  the patch passed  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace issues.  |
   | +0 :ok: |  refguide  |   4m 55s |  patch has no errors when building the reference guide. See footer for rendered docs, which you should manually inspect.  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 18s |  The patch does not generate ASF License warnings.  |
   |  |   |  20m 28s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.11 Server=19.03.11 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1871/5/artifact/yetus-general-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/1871 |
   | Optional Tests | dupname asflicense refguide |
   | uname | Linux 399b51985d86 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 474d200daa |
   | refguide | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1871/5/artifact/yetus-general-check/output/branch-site/book.html |
   | refguide | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1871/5/artifact/yetus-general-check/output/patch-site/book.html |
   | Max. process+thread count | 79 (vs. ulimit of 12500) |
   | modules | C: . U: . |
   | Console output | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1871/5/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) |
   | Powered by | Apache Yetus 0.11.1 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] busbey commented on a change in pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
busbey commented on a change in pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#discussion_r437027415



##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -397,28 +396,109 @@ mvn clean install -DskipTests
 See the <<hbase.unittests.cmds,hbase.unittests.cmds>> section in <<hbase.unittests,hbase.unittests>>
 
 [[maven.build.hadoop]]
-==== Building against various hadoop versions.
+==== Building against various Hadoop versions
+
+HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts).
+Exactly which version of Hadoop is used by default varies by release branch. See the section
+<<hadoop,Hadoop>> for the complete breakdown of supported Hadoop version by HBase release.
+
+The mechanism for selecting a Hadoop version at build time is identical across all releases. Which
+version of Hadoop is default varies. We manage Hadoop major version selection by way of Maven
+profiles. Due to the peculiarities of Maven profile mutual exclusion, the profile that builds
+against a particular Hadoop version is activated by setting a property, *not* the usual profile
+activation. Hadoop version profile activation is summarized by the following table.
+
+.Hadoop Profile Activation by HBase Release
+[cols="3*^.^", options="header"]
+|===
+| | Hadoop2 Activation | Hadoop3 Activation
+| HBase 1.3+ | _active by default_ | `-Dhadoop.profile=3.0`
+| HBase 3.0+ | _not supported_ | _active by default_
+|===
+
+[WARNING]
+====
+Please note that where a profile is active by default, `hadoop.profile` must NOT be provided.
+====
+
+Once the Hadoop major version profile is activated, the exact Hadoop version can be
+specified by overriding the appropriate property value. For Hadoop2 versions, the property name
+is `hadoop-two.version`. With Hadoop3 versions, the property name is `hadoop-three.version`.
 
-HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts). By default we build against Hadoop 2.x.
+.Example 1, Building HBase 1.7 against Hadoop 2.10.0
 
-To build against a specific release from the Hadoop 2.y line, set e.g. `-Dhadoop-two.version=2.6.3`.
+For example, to build HBase 1.7 against Hadoop 2.10.0, the profile is set for Hadoop2 by default,
+so only `hadoop-two.version` must be specified:
 
 [source,bourne]
 ----
-mvn -Dhadoop-two.version=2.6.3 ...
+git checkout branch-1
+mvn -Dhadoop-two.version=2.10.0 ...
 ----
 
-To change the major release line of Hadoop we build against, add a hadoop.profile property when you invoke +mvn+:
+.Example 2, Building HBase 2.3 against Hadoop 3.3.0-SNAPSHOT

Review comment:
       nit: we shouldn't be telling folks to build against non-released versions of Apache Hadoop I think?

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -397,28 +396,109 @@ mvn clean install -DskipTests
 See the <<hbase.unittests.cmds,hbase.unittests.cmds>> section in <<hbase.unittests,hbase.unittests>>
 
 [[maven.build.hadoop]]
-==== Building against various hadoop versions.
+==== Building against various Hadoop versions
+
+HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts).
+Exactly which version of Hadoop is used by default varies by release branch. See the section
+<<hadoop,Hadoop>> for the complete breakdown of supported Hadoop version by HBase release.
+
+The mechanism for selecting a Hadoop version at build time is identical across all releases. Which
+version of Hadoop is default varies. We manage Hadoop major version selection by way of Maven
+profiles. Due to the peculiarities of Maven profile mutual exclusion, the profile that builds
+against a particular Hadoop version is activated by setting a property, *not* the usual profile
+activation. Hadoop version profile activation is summarized by the following table.
+
+.Hadoop Profile Activation by HBase Release
+[cols="3*^.^", options="header"]
+|===
+| | Hadoop2 Activation | Hadoop3 Activation
+| HBase 1.3+ | _active by default_ | `-Dhadoop.profile=3.0`
+| HBase 3.0+ | _not supported_ | _active by default_
+|===
+
+[WARNING]
+====
+Please note that where a profile is active by default, `hadoop.profile` must NOT be provided.
+====
+
+Once the Hadoop major version profile is activated, the exact Hadoop version can be
+specified by overriding the appropriate property value. For Hadoop2 versions, the property name
+is `hadoop-two.version`. With Hadoop3 versions, the property name is `hadoop-three.version`.
 
-HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts). By default we build against Hadoop 2.x.
+.Example 1, Building HBase 1.7 against Hadoop 2.10.0
 
-To build against a specific release from the Hadoop 2.y line, set e.g. `-Dhadoop-two.version=2.6.3`.
+For example, to build HBase 1.7 against Hadoop 2.10.0, the profile is set for Hadoop2 by default,
+so only `hadoop-two.version` must be specified:
 
 [source,bourne]
 ----
-mvn -Dhadoop-two.version=2.6.3 ...
+git checkout branch-1
+mvn -Dhadoop-two.version=2.10.0 ...
 ----
 
-To change the major release line of Hadoop we build against, add a hadoop.profile property when you invoke +mvn+:
+.Example 2, Building HBase 2.3 against Hadoop 3.3.0-SNAPSHOT

Review comment:
       this is where it's problematic that our ref guide is both the resource for downstream users of HBase and the development community of HBase. Can we make this "build against a different major release line of hadoop" use a released version? and then belwo when we talk about development versions include a note that the instructions are for folks subscribed to dev@hbase working on development of the project?

##########
File path: src/main/asciidoc/_chapters/developer.adoc
##########
@@ -397,28 +396,109 @@ mvn clean install -DskipTests
 See the <<hbase.unittests.cmds,hbase.unittests.cmds>> section in <<hbase.unittests,hbase.unittests>>
 
 [[maven.build.hadoop]]
-==== Building against various hadoop versions.
+==== Building against various Hadoop versions
+
+HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts).
+Exactly which version of Hadoop is used by default varies by release branch. See the section
+<<hadoop,Hadoop>> for the complete breakdown of supported Hadoop version by HBase release.
+
+The mechanism for selecting a Hadoop version at build time is identical across all releases. Which
+version of Hadoop is default varies. We manage Hadoop major version selection by way of Maven
+profiles. Due to the peculiarities of Maven profile mutual exclusion, the profile that builds
+against a particular Hadoop version is activated by setting a property, *not* the usual profile
+activation. Hadoop version profile activation is summarized by the following table.
+
+.Hadoop Profile Activation by HBase Release
+[cols="3*^.^", options="header"]
+|===
+| | Hadoop2 Activation | Hadoop3 Activation
+| HBase 1.3+ | _active by default_ | `-Dhadoop.profile=3.0`
+| HBase 3.0+ | _not supported_ | _active by default_
+|===
+
+[WARNING]
+====
+Please note that where a profile is active by default, `hadoop.profile` must NOT be provided.
+====
+
+Once the Hadoop major version profile is activated, the exact Hadoop version can be
+specified by overriding the appropriate property value. For Hadoop2 versions, the property name
+is `hadoop-two.version`. With Hadoop3 versions, the property name is `hadoop-three.version`.
 
-HBase supports building against Apache Hadoop versions: 2.y and 3.y (early release artifacts). By default we build against Hadoop 2.x.
+.Example 1, Building HBase 1.7 against Hadoop 2.10.0
 
-To build against a specific release from the Hadoop 2.y line, set e.g. `-Dhadoop-two.version=2.6.3`.
+For example, to build HBase 1.7 against Hadoop 2.10.0, the profile is set for Hadoop2 by default,
+so only `hadoop-two.version` must be specified:
 
 [source,bourne]
 ----
-mvn -Dhadoop-two.version=2.6.3 ...
+git checkout branch-1
+mvn -Dhadoop-two.version=2.10.0 ...
 ----
 
-To change the major release line of Hadoop we build against, add a hadoop.profile property when you invoke +mvn+:
+.Example 2, Building HBase 2.3 against Hadoop 3.3.0-SNAPSHOT

Review comment:
       I like that last proposed edit.
   
   How much of a problem telling folks to use unreleased artifacts is depends on the winds of ASF policy vs spirit stuff. So I'd rather avoid getting near the morass




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] ndimiduk commented on pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
ndimiduk commented on pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#issuecomment-640788492


   Please take a look. @joshelser @busbey @saintstack @HorizonNet @virajjasani @apurtell @infraio @Apache9 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #1871: HBASE-24005 Document maven invocation with JDK11

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #1871:
URL: https://github.com/apache/hbase/pull/1871#issuecomment-641565361


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   0m 28s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   ||| _ Patch Compile Tests _ |
   ||| _ Other Tests _ |
   |  |   |   1m 32s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.11 Server=19.03.11 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1871/5/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/1871 |
   | Optional Tests |  |
   | uname | Linux b60c6cd54cc6 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 474d200daa |
   | Max. process+thread count | 45 (vs. ulimit of 12500) |
   | modules | C: . U: . |
   | Console output | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1871/5/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) |
   | Powered by | Apache Yetus 0.11.1 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org