Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBASE-11062 hbtop #476

Merged
merged 1 commit into from
Sep 7, 2019
Merged

HBASE-11062 hbtop #476

merged 1 commit into from
Sep 7, 2019

Conversation

brfrn169
Copy link
Member

I removed the dependency for Lanterna to remove the license problem.

We can run hbtop by running hbase top command, and press h key in the top screen for the help screen.

For the details of hbtop, this is the presentation in NoSQL day 2019 (the name is changed from htop to hbtop):
https://dataworkssummit.com/nosql-day-2019/session/supporting-apache-hbase-troubleshooting-and-supportability-improvements/

Copy link
Contributor

@saintstack saintstack left a comment

Choose a reason for hiding this comment

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

This looks great. Put some images up in the JIRA so we can see how it looks. How did you come up with this body of work. Have you done terminal UI in the past? You did a mountain of work. Good on you.

@brfrn169
Copy link
Member Author

Thank you for reviewing! @saintstack

Put some images up in the JIRA so we can see how it looks.

Sure, will update the Jira.

How did you come up with this body of work. Have you done terminal UI in the past?

I have never done terminal UI in the past actually. And I thought about using Lanterna (https://github.com/mabe02/lanterna) to build the terminal UI, but I faced the license problem (Lanterna is LGPL License that's incompatible with Apache License. See mabe02/lanterna#415 for the details). So I decided not to use Lanterna and to make the terminal UI by myself.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@brfrn169
Copy link
Member Author

I added README (https://github.com/brfrn169/hbase/blob/HBASE-11062/hbase-hbtop/README.md) in the hbtop module so that reviewers can see the details of hbtop.

Can you please review this PR when you get a chance? @saintstack @Apache9 @apurtell @joshelser @busbey

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

bin/hbase Show resolved Hide resolved
@joshelser
Copy link
Member

Regarding the issue where the byte-sizes don't get rolled up to the next unit, I added a logic to do it in FieldValue

Looks good!

I made Record class immutable in the latest commit.

Left a new comment (throw UnsupportedOperationException instead of letting it throw an exception via the ImmutableMap), but that doesn't need to block getting this in.

If we think this is ready to go, I'll test it locally again.

@brfrn169
Copy link
Member Author

brfrn169 commented Sep 3, 2019

the easiest way is to squash your commits and force push to your feature branch.

I did do this.

Left a new comment (throw UnsupportedOperationException instead of letting it throw an exception via the ImmutableMap)

And, I changed the patch for this Josh's comment.

Could you please let me know if there's something I need to do?

Copy link
Member

@joshelser joshelser left a comment

Choose a reason for hiding this comment

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

Will re-test it today, but LGTM

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
0 reexec 49 Docker mode activated.
_ Prechecks _
+1 dupname 2 No case conflicting files found.
0 shelldocs 2 Shelldocs was not available.
+1 hbaseanti 0 Patch does not have any anti-patterns.
+1 @author 1 The patch does not contain any @author tags.
+1 test4tests 0 The patch appears to include 22 new or modified test files.
_ master Compile Tests _
0 mvndep 36 Maven dependency ordering for branch
+1 mvninstall 314 master passed
+1 compile 186 master passed
+1 checkstyle 157 master passed
+1 shadedjars 279 branch has no errors when building our shaded downstream artifacts.
+1 javadoc 194 master passed
0 spotbugs 33 Used deprecated FindBugs config; considering switching to SpotBugs.
0 findbugs 33 branch/hbase-assembly no findbugs output file (findbugsXml.xml)
_ Patch Compile Tests _
0 mvndep 16 Maven dependency ordering for patch
+1 mvninstall 313 the patch passed
+1 compile 186 the patch passed
+1 javac 186 the patch passed
+1 checkstyle 142 the patch passed
+1 shellcheck 3 There were no new shellcheck issues.
+1 whitespace 0 The patch has no whitespace issues.
+1 xml 5 The patch has no ill-formed XML file.
+1 shadedjars 295 patch has no errors when building our shaded downstream artifacts.
+1 hadoopcheck 992 Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 javadoc 202 the patch passed
0 findbugs 33 hbase-assembly has no data from findbugs
_ Other Tests _
+1 unit 14862 root in the patch passed.
+1 asflicense 112 The patch does not generate ASF License warnings.
20620
Subsystem Report/Notes
Docker Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-476/71/artifact/out/Dockerfile
GITHUB PR #476
Optional Tests dupname asflicense shellcheck shelldocs javac javadoc unit shadedjars hadoopcheck xml compile spotbugs findbugs hbaseanti checkstyle
uname Linux 5285cdcfbc6f 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/HBase-PreCommit-GitHub-PR_PR-476/out/precommit/personality/provided.sh
git revision master / dfe5280
Default Java 1.8.0_181
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-476/71/testReport/
Max. process+thread count 5497 (vs. ulimit of 10000)
modules C: hbase-hbtop . hbase-assembly U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-476/71/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) shellcheck=0.4.4 findbugs=3.1.11
Powered by Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

@brfrn169
Copy link
Member Author

brfrn169 commented Sep 5, 2019

It looks like the QA is okay.

@saintstack Could you please take a look at this? As Josh, Sean and Andrew have approved it, If you are okay with it, I will commit it. Thanks.

Copy link
Contributor

@saintstack saintstack left a comment

Choose a reason for hiding this comment

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

Skimmed. Approved. My two concerns -- that we rely on a lib for terminal and console display and that this better sits in hbase-operator-tools -- saw good discussion w/ resolution on the first being that we'll pull in libs as/if we trip over them and on the latter, while a few of us might think it sits better in hbase-operator-tools, the maintainer would prefer core. Suggest you cast the README as a blog post for hbase.apache.org. The README is complete and this is a nice feature that folks will be excited about.

hbase-hbtop/README.md Show resolved Hide resolved
hbase-hbtop/pom.xml Outdated Show resolved Hide resolved
@brfrn169
Copy link
Member Author

brfrn169 commented Sep 6, 2019

Thank you for approving this PR, guys. I will commit it. Thanks!

Suggest you cast the README as a blog post for hbase.apache.org. The README is complete and this is a nice feature that folks will be excited about.

@saintstack Thank you for suggesting this. I'd love to do it. But, I don't know how to post an article on hbase.apache.org. Could you please instruct me or give me documentation for it?

@saintstack
Copy link
Contributor

@brfrn169 https://blogs.apache.org/roller-ui/menu.rol is how you log on to the blog. I think you have to be added. It might be a PMC chair thing... checking. Otherwise, open issue, put text up in it and we can go back and forth on it and I can post if we don't get you your own account. Doesn't have to be much. Just your README cast as a blog post. Your README has nice stuff in it.

Signed-off-by: Stack <[email protected]>
Signed-off-by: Sean Busbey <[email protected]>
Signed-off-by: Josh Elser <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
@brfrn169 brfrn169 merged commit 78bae9e into apache:master Sep 7, 2019
@brfrn169
Copy link
Member Author

brfrn169 commented Sep 7, 2019

https://blogs.apache.org/roller-ui/menu.rol is how you log on to the blog. I think you have to be added. It might be a PMC chair thing... checking. Otherwise, open issue, put text up in it and we can go back and forth on it and I can post if we don't get you your own account. Doesn't have to be much. Just your README cast as a blog post. Your README has nice stuff in it.

Sure, thanks. @saintstack
Please let me know if I need to open a new issue for it.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
💙 reexec 0m 39s Docker mode activated.
_ Prechecks _
💚 dupname 0m 1s No case conflicting files found.
💙 shelldocs 0m 1s Shelldocs was not available.
💙 markdownlint 0m 0s markdownlint was not available.
💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
💚 @author 0m 1s The patch does not contain any @author tags.
💚 test4tests 0m 0s The patch appears to include 22 new or modified test files.
_ master Compile Tests _
💙 mvndep 0m 47s Maven dependency ordering for branch
💚 mvninstall 5m 13s master passed
💚 compile 3m 9s master passed
💚 checkstyle 2m 30s master passed
💚 shadedjars 4m 41s branch has no errors when building our shaded downstream artifacts.
💚 javadoc 3m 12s master passed
💙 spotbugs 0m 32s Used deprecated FindBugs config; considering switching to SpotBugs.
💙 findbugs 0m 32s branch/hbase-assembly no findbugs output file (findbugsXml.xml)
_ Patch Compile Tests _
💙 mvndep 0m 22s Maven dependency ordering for patch
💚 mvninstall 5m 9s the patch passed
💚 compile 3m 3s the patch passed
💚 javac 3m 3s the patch passed
💚 checkstyle 2m 49s the patch passed
💚 shellcheck 0m 2s There were no new shellcheck issues.
💚 whitespace 0m 0s The patch has no whitespace issues.
💚 xml 0m 4s The patch has no ill-formed XML file.
💚 shadedjars 4m 44s patch has no errors when building our shaded downstream artifacts.
💚 hadoopcheck 16m 37s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
💚 javadoc 3m 49s the patch passed
💙 findbugs 0m 38s hbase-assembly has no data from findbugs
_ Other Tests _
💚 unit 260m 10s root in the patch passed.
💚 asflicense 2m 8s The patch does not generate ASF License warnings.
360m 50s
Subsystem Report/Notes
Docker Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-476/72/artifact/out/Dockerfile
GITHUB PR #476
Optional Tests dupname asflicense shellcheck shelldocs javac javadoc unit shadedjars hadoopcheck xml compile markdownlint spotbugs findbugs hbaseanti checkstyle
uname Linux 179af4f63f9e 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/HBase-PreCommit-GitHub-PR_PR-476/out/precommit/personality/provided.sh
git revision master / 51b6ce3
Default Java 1.8.0_181
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-476/72/testReport/
Max. process+thread count 5537 (vs. ulimit of 10000)
modules C: hbase-hbtop . hbase-assembly U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-476/72/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) shellcheck=0.4.4 findbugs=3.1.11
Powered by Apache Yetus 0.11.0 https://yetus.apache.org

This message was automatically generated.

asfgit pushed a commit that referenced this pull request Sep 7, 2019
Signed-off-by: Stack <[email protected]>
Signed-off-by: Sean Busbey <[email protected]>
Signed-off-by: Josh Elser <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
asfgit pushed a commit that referenced this pull request Sep 7, 2019
Signed-off-by: Stack <[email protected]>
Signed-off-by: Sean Busbey <[email protected]>
Signed-off-by: Josh Elser <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
asfgit pushed a commit that referenced this pull request Sep 7, 2019
Signed-off-by: Stack <[email protected]>
Signed-off-by: Sean Busbey <[email protected]>
Signed-off-by: Josh Elser <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
@@ -656,6 +657,24 @@ elif [ "$COMMAND" = "pre-upgrade" ] ; then
CLASS='org.apache.hadoop.hbase.tool.PreUpgradeValidator'
elif [ "$COMMAND" = "completebulkload" ] ; then
CLASS='org.apache.hadoop.hbase.tool.BulkLoadHFilesTool'
elif [ "$COMMAND" = "hbtop" ] ; then
CLASS='org.apache.hadoop.hbase.hbtop.HBTop'
Copy link
Member

Choose a reason for hiding this comment

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

What's with all this gymnastics building a custom class path? Looks like a land mine waiting to trip up someone who wants to upgrade our dependencies.

Copy link
Contributor

Choose a reason for hiding this comment

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

Any command that needs something beyond our basics (either client or normal service process) has to whitelist the extras it needs.

hbtop largely just needs the shaded client jar, but it has some third-party stuff it uses directly, hence the extra add on.

I think this is the best of not great options given how we currently do packaging.

If you want to discuss improvements to how we do command packaging it's something I'm interested in. A DISCUSS thread or an umbrella jira would probably be a better venue for that

infraio pushed a commit to infraio/hbase that referenced this pull request Aug 17, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Sean Busbey <[email protected]>
Signed-off-by: Josh Elser <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
infraio pushed a commit to infraio/hbase that referenced this pull request Aug 17, 2020
symat pushed a commit to symat/hbase that referenced this pull request Feb 17, 2021
Signed-off-by: Stack <[email protected]>
Signed-off-by: Sean Busbey <[email protected]>
Signed-off-by: Josh Elser <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
(cherry picked from commit 44dea25)

Change-Id: I0418ecf8422fc04d2a3e693b359416372fc0f6d6
symat pushed a commit to symat/hbase that referenced this pull request Feb 17, 2021
(cherry picked from commit caef72c)

Change-Id: I1cad7c43aaa0345d5fa357f7cd273aa260462773
@zhugelianglongming
Copy link

I removed the dependency for Lanterna to remove the license problem.

Hi, I'm curious about the specific license problem, can you tell me more about "Apache depends on LGPL"?

@brfrn169
Copy link
Member Author

brfrn169 commented Dec 9, 2022

@zhugelianglongming We should not include the LGPL license within Apache products as mentioned in the following page:
http://www.apache.org/legal/resolved.html#category-x

You can also follow the following issue for the details:
mabe02/lanterna#415

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants