Skip to content

Conversation

@stoty
Copy link
Contributor

@stoty stoty commented Oct 22, 2025

Description of PR

Use hbase-shaded-client-byo-hadoop in hadoop-yarn-server-timelineservice-hbase

How was this patch tested?

Test suite and testing on pesudodistributed cluster.

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

@stoty stoty marked this pull request as draft October 22, 2025 11:21
@stoty
Copy link
Contributor Author

stoty commented Oct 22, 2025

Testing on pseudo-distributed cluster not yet done.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 21s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+0 🆗 mvndep 7m 29s Maven dependency ordering for branch
+1 💚 mvninstall 15m 46s trunk passed
+1 💚 compile 8m 16s trunk passed with JDK Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04
+1 💚 compile 8m 25s trunk passed with JDK Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
+1 💚 mvnsite 1m 52s trunk passed
+1 💚 javadoc 1m 57s trunk passed with JDK Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 50s trunk passed with JDK Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
+1 💚 shadedclient 60m 1s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 34s Maven dependency ordering for patch
+1 💚 mvninstall 0m 58s the patch passed
+1 💚 compile 7m 49s the patch passed with JDK Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04
+1 💚 javac 7m 49s the patch passed
+1 💚 compile 8m 24s the patch passed with JDK Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
+1 💚 javac 8m 24s the patch passed
+1 💚 blanks 0m 1s The patch has no blanks issues.
+1 💚 mvnsite 1m 52s the patch passed
+1 💚 javadoc 1m 59s the patch passed with JDK Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 43s the patch passed with JDK Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
+1 💚 shadedclient 20m 58s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 19s hadoop-project in the patch passed.
+1 💚 unit 0m 27s hadoop-yarn-server-timelineservice-hbase-common in the patch passed.
+1 💚 unit 0m 27s hadoop-yarn-server-timelineservice-hbase-client in the patch passed.
+1 💚 unit 0m 27s hadoop-yarn-server-timelineservice-hbase-server-2 in the patch passed.
+1 💚 unit 8m 55s hadoop-yarn-server-timelineservice-hbase-tests in the patch passed.
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
111m 43s
Subsystem Report/Notes
Docker ClientAPI=1.51 ServerAPI=1.51 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8046/1/artifact/out/Dockerfile
GITHUB PR #8046
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint
uname Linux 9c210ed9a709 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 0f34084
Default Java Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8046/1/testReport/
Max. process+thread count 1136 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-common hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-client hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-server/hadoop-yarn-server-timelineservice-hbase-server-2 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase-tests U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8046/1/console
versions git=2.25.1 maven=3.9.11
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's a mix of shaded and (provided) unshaded dependencies, plus some exclusions.

Is this for testing?

If so we should explain this in the commit message and the jira text.

Other than that, LGTM

+1

<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<scope>provided</scope>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need this at all, given the shaded one is there? Is it testing related?

Copy link
Contributor Author

@stoty stoty Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, this is a server side component, and needs the hbase-server to compile.
The shaded one is not there, as we're excluding it form the dependencies to avoid conflicts.


<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment -seems superflous.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same reply, we don't want to mix the shaded and unshaded jars, so we use the unshaded version of everything.

@stoty
Copy link
Contributor Author

stoty commented Oct 22, 2025

This uses the shaded Hbase client for the hbase client side modules:
hadoop-yarn-server-timelineservice-hbase-common, hadoop-yarn-server-timelineservice-hbase-client

However, we need the unshaded hbase-server JAR for compiling the Hbase coprocessor in hadoop-yarn-server-timelineservice-hbase-server-2, so we use the unshaded Hbase jars there.

For simlipicity's sake (and beacuse I'm not sure we do otherwise) we're still using the unshaded hbase jars for testing, as the protobuf 2.5 dependency is not a problem there.

Hbase does provide an hbase-shaded-testing-util package, but I am not sure that works with custom coprocessors, and I didn't attempt using that.

Mixing the unshaded hbase jars with the shaded client is a bad idea, so we exclude the shaded client when building the coprocessor and in the tests.

…timelineservice-hbase

Replaces the unshaded maven dpendencies with hbase-shaded-client-byo-hadoop
in hadoop-yarn-server-timelineservice-hbase-common and hadoop-yarn-server-timelineservice-hbase-client.

Building the HBase coprocessor requires the hbase-server dependency, so we keep using the unshaded
dependencies for hadoop-yarn-server-timelineservice-hbase-server-2.

We're also using the unshaded HBase dependencies in hadoop-yarn-server-timelineservice-hbase-tests
because that does not affect the production classpath, and I'm not sure we can even test coprocessors
with hbase-shaded-testing-util.
@stoty
Copy link
Contributor Author

stoty commented Oct 22, 2025

I have added the explanation to the commit message.

@stoty
Copy link
Contributor Author

stoty commented Oct 22, 2025

Only hadoop-yarn-server-timelineservice-hbase-common, hadoop-yarn-server-timelineservice-hbase-client are included in YARN classpath. They are also only using the HBase client API, so we can use hbase-shaded-client... with them without problems.

hadoop-yarn-server-timelineservice-hbase-server-2 only needs to be present on the HBase classpath and it is packaged without dependencies, so using the unshaded dependencies there is not a problem.

As discussed in YARN-11882, hadoop-yarn-server-timelineservice-hbase-server-2 should not even be added to the Yarn classpath. It can not work outside the HBase server environment, it is dead code in the Yarn processes.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 21s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+0 🆗 mvndep 7m 38s Maven dependency ordering for branch
+1 💚 mvninstall 15m 57s trunk passed
+1 💚 compile 8m 19s trunk passed with JDK Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04
+1 💚 compile 8m 20s trunk passed with JDK Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
+1 💚 mvnsite 1m 59s trunk passed
+1 💚 javadoc 1m 58s trunk passed with JDK Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 44s trunk passed with JDK Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
+1 💚 shadedclient 60m 48s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 39s Maven dependency ordering for patch
+1 💚 mvninstall 1m 0s the patch passed
+1 💚 compile 7m 55s the patch passed with JDK Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04
+1 💚 javac 7m 55s the patch passed
+1 💚 compile 8m 22s the patch passed with JDK Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
+1 💚 javac 8m 22s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 mvnsite 2m 0s the patch passed
+1 💚 javadoc 2m 1s the patch passed with JDK Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 42s the patch passed with JDK Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
+1 💚 shadedclient 21m 22s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 20s hadoop-project in the patch passed.
+1 💚 unit 0m 26s hadoop-yarn-server-timelineservice-hbase-common in the patch passed.
+1 💚 unit 0m 29s hadoop-yarn-server-timelineservice-hbase-client in the patch passed.
+1 💚 unit 0m 23s hadoop-yarn-server-timelineservice-hbase-server-2 in the patch passed.
+1 💚 unit 8m 46s hadoop-yarn-server-timelineservice-hbase-tests in the patch passed.
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
113m 33s
Subsystem Report/Notes
Docker ClientAPI=1.51 ServerAPI=1.51 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8046/2/artifact/out/Dockerfile
GITHUB PR #8046
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint
uname Linux 05f7070d1642 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 4690479
Default Java Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.7+6-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.15+6-Ubuntu-0ubuntu120.04
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8046/2/testReport/
Max. process+thread count 1157 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-common hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-client hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-server/hadoop-yarn-server-timelineservice-hbase-server-2 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase-tests U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8046/2/console
versions git=2.25.1 maven=3.9.11
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense

  • we want the shaded stuff on the classpath of all clients
  • we want to build stuff to run in the server process against unshaded hbase
  • we want to test with unshaded hbase
  • we don't want to mix

+1, once you switch it from draft to "ready to review"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants