-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
HBASE-11062 hbtop #476
Conversation
There was a problem hiding this 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.
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/RecordFilter.java
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.java
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/RegionModeStrategy.java
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.java
Show resolved
Hide resolved
Thank you for reviewing! @saintstack
Sure, will update the Jira.
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. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/Record.java
Outdated
Show resolved
Hide resolved
Looks good!
Left a new comment (throw UnsupportedOperationException instead of letting it throw an exception via the If we think this is ready to go, I'll test it locally again. |
452ba66
to
0ddec9f
Compare
I did do this.
And, I changed the patch for this Josh's comment. Could you please let me know if there's something I need to do? |
There was a problem hiding this 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
🎊 +1 overall
This message was automatically generated. |
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. |
There was a problem hiding this 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/src/main/java/org/apache/hadoop/hbase/hbtop/HBTop.java
Outdated
Show resolved
Hide resolved
0ddec9f
to
1ea52e4
Compare
Thank you for approving this PR, guys. I will commit it. Thanks!
@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? |
@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 <stack@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org> Signed-off-by: Josh Elser <elserj@apache.org> Signed-off-by: Andrew Purtell <apurtell@apache.org>
1ea52e4
to
42c5ee1
Compare
Sure, thanks. @saintstack |
🎊 +1 overall
This message was automatically generated. |
Signed-off-by: Stack <stack@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org> Signed-off-by: Josh Elser <elserj@apache.org> Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Stack <stack@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org> Signed-off-by: Josh Elser <elserj@apache.org> Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Stack <stack@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org> Signed-off-by: Josh Elser <elserj@apache.org> Signed-off-by: Andrew Purtell <apurtell@apache.org>
@@ -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' |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
Signed-off-by: Stack <stack@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org> Signed-off-by: Josh Elser <elserj@apache.org> Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Stack <stack@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org> Signed-off-by: Josh Elser <elserj@apache.org> Signed-off-by: Andrew Purtell <apurtell@apache.org> (cherry picked from commit 44dea25) Change-Id: I0418ecf8422fc04d2a3e693b359416372fc0f6d6
(cherry picked from commit caef72c) Change-Id: I1cad7c43aaa0345d5fa357f7cd273aa260462773
Hi, I'm curious about the specific license problem, can you tell me more about "Apache depends on LGPL"? |
@zhugelianglongming We should not include the LGPL license within Apache products as mentioned in the following page: You can also follow the following issue for the details: |
I removed the dependency for Lanterna to remove the license problem.
We can run hbtop by running
hbase top
command, and pressh
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/