Commit Graph

495 Commits

Author SHA1 Message Date
Elliot 98e35842eb
HBASE-24806 Small Updates to Functionality of Shell IRB Workspace (#2232)
* HBASE-24806 Small Updates to Functionality of Shell IRB Workspace

- Move exception handler from Shell::Shell#eval_io to new method,
  Shell::Shell#exception_handler
- Add unit tests for Shell::Shell#exception_handler
- Change Shell::Shell#eval_io to no longer raise SystemExit when any error is
  seen and update unit test
- Update ruby test runner to catch SystemExit and fail to avoid tests that
  cause the test runner to incorrectly exit successfully
- Add Hbase::Loader module to find ruby scripts in the $LOAD_PATH and classpath
  using JRuby's loader.
- In hbase-shell, install IRB commands before exporting HBase commands. The
  HBase commands will override the IRB commands, and no warning will be
  printed.

* Remove unused variables from shell_test

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: stack <stack@apache.org>
2020-08-18 13:14:34 -07:00
Elliot 7eff07d6bf
HBASE-11686 Shell code should create a binding / irb workspace instead of polluting the root namespace (#2141)
* HBASE-11686 Shell code should create a binding / irb workspace instead of polluting the root namespace

- Refactor Shell.export_commands to define commands using ruby lambdas.
  Additionally, this change stores a reference to shell_inst in scope so that
  we no longer need to assume the existance of the variable @shell.
- Add logic to Shell class for constructing an IRB workspace with its own
  binding and non-global receiver. This workspace is loaded with all HBase and
  IRB commands.
- Create new method on Shell for evaluating input from an arbitrary IO instance
  within the created IRB workspace. This is based on work by Hsieh that was
  previously in bin/hirb.rb. This method is more generic and more testable.
  This single pattern can be used for both executing files and reading from
  stdin, therefore reducing complexity.
- Move special 'help' and 'tools' command definitions to shell.rb. These
  commands are tightly linked with an instance of the shell, so it is easiest
  to have them defined together.
- Remove all global includes of HBaseConstants from ruby test files. Before
  this change, tests were loading these constants into the top level, which
  could cause tests to pass that should really fail.
- Try to reduce the number of places that constants are included. I think it's
  best to reference each ruby constant's full name, but where that would cause
  a big diff I instead moved the include to the innermost Module or Class.
- Update docs and comments
- Remove unneccessary includes
- Add shell --top-level-cmds compatibility flag. Since this PR removes all the
  HBase symbols from the top-level receiver (ie. main Object), it is possible
  (albeit unlikely) that this will break operator scripts. This flag will
  export all the commands at the top-level like the shell previously did.

* HBASE-11686 Light refactoring with added unit tests

- Fixes some constants references by admin test 2
- Install HBase commands as singleton methods on recevier instances so that
  multiple receivers may exist.
- Rename new flag from --top-level-cmds to --top-level-defs to be more
  semantically accurate.
- Create new helper method Shell::Shell#export_all to install @hbase, @shell,
  constants, and all hbase commands to a target receiver. As a result, the
  HBaseReceiver became very simple and could be moved to shell.rb.
- Add unit tests for Shell::Shell#eval_io and Shell::Shell#export_all
- Add @hbase and @shell to hbase-shell IRB workspace
- Fix robocop issues within patch

* Typo s/is/if/
2020-07-27 20:56:09 -07:00
Baiqiang Zhao fe2ae809d1
HBASE-24671 Add excludefile and designatedfile options to graceful_stop.sh
Closes #2013

Signed-off-by: Viraj Jasani <vjasani@apache.org>
2020-07-05 19:34:23 +05:30
WenFeiYi 6b62c0b6d2
HBASE-24550 Passing '-h' or '--help' to bin/hbase doesn't do as expected (ADDENDUM)
Closes #1932

Signed-off-by: Viraj Jasani <vjasani@apache.org>
2020-06-19 22:52:18 +05:30
WenFeiYi f73480febf
HBASE-24550 Passing '-h' or '--help' to bin/hbase doesn't do as expected
Closes #1914

Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
2020-06-18 15:42:57 +05:30
Nick Dimiduk 7f6672eb9e
HBASE-24143 [JDK11] Switch default garbage collector from CMS ; Addendum (#1594)
Signed-off-by: Sean Busbey <busbey@apache.org>
2020-04-27 09:24:46 -07:00
Nick Dimiduk 52245e9f7c HBASE-24143 [JDK11] Switch default garbage collector from CMS
Per comments in Jira, be explicit about what collector we
use. Existing code simply hard-codes HBASE_OPTS in
`conf/hbase-env.sh`. We now need to be a little more clever than this,
so moves the definition into `bin/hbase`. Also consolidates logic
around JVM version detection into a reusable function.

This change also changes how we set `HBASE_OPTS`. Before, we would
accept an operator's value, but always append our GC
prescription. After this change, we defer entirely to the operator's
choice, only applying our values when they've not specified their
intentions.

Signed-off-by: stack <stack@apache.org>
Signed-off-by: Sean Busbey <busbey@apache.org>
2020-04-17 13:51:08 -07:00
Toshihiro Suzuki 79e799ab7b
HBASE-23165 [hbtop] Some modifications from HBASE-22988 (#987)
Signed-off-by: stack <stack@apache.org>
2020-01-11 21:06:07 +09:00
Michael Stack f0f7fae400 HBASE-21458 Error: Could not find or load main class org.apache.hadoop.hbase.util.GetJavaProperty
Signed-off-by: Sean Busbey <busbey@apache.org>
2019-11-05 22:50:16 -06:00
Rushabh 5aa8d3a20b HBASE-22874 Define a public API for Canary checking and a non-public tool implementation
Closes #580

* Canary is now an IA.Public interface
* CanaryTool is now the implementation

Signed-off-by: Sean Busbey <busbey@apache.org>
2019-10-03 13:45:48 -07:00
Toshihiro Suzuki 78bae9e3d0
HBASE-11062 hbtop (#476)
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>
2019-09-07 14:02:52 +09:00
Viraj Jasani f02f741f99 HBASE-22783 shell with removal of status and load classes
Signed-off-by: stack <stack@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Jan Hentschel <jan.hentschel@ultratendency.com>
2019-08-06 19:20:22 +02:00
Sakthi 0fead7ff1c HBASE-22264 Separate out jars related to JDK 11 into a folder in /lib
Signed-off-by: Sean Busbey <busbey@apache.org>
2019-06-13 09:40:05 -05:00
Artem Ervits 420fbba6ae HBASE-21536 Fix completebulkload usage instructions
Signed-off-by: Peter Somogyi <psomogyi@apache.org>
2019-05-10 09:53:51 +02:00
Andrew Purtell 6cd78e899f
HBASE-21926 Profiler servlet 2019-03-17 18:48:12 -07:00
Sakthi 65caa08edc HBASE-21812 Address ruby static analysis for shell/bin modules [2nd pass]
Signed-off-by: Sean Busbey <busbey@apache.org>
2019-02-03 06:39:53 -06:00
Nihal Jain 59f77de723 HBASE-21629 draining_servers.rb is broken 2018-12-23 20:48:43 -08:00
stack da9508d427 HBASE-21567 Allow overriding configs starting up the shell
Adds support for -D as option to 'hbase shell'
2018-12-08 15:08:19 -08:00
Michael Stack 5dde5b7878
HBASE-21215 Figure how to invoke hbck2; make it easy to find
Adds option parameter to the bin/hbase hbck command that allows
passing the hbck2 jar.

Signed-off-by: Sean Busbey <busbey@apache.org>
2018-10-24 20:46:28 -07:00
Sean Busbey 10cc1da76a HBASE-20615 emphasize shaded artifacts in client tarball. 2018-06-18 11:31:13 -07:00
Peter Somogyi 0968668283 HBASE-20592 Create a tool to verify tables do not have prefix tree encoding
Signed-off-by: Mike Drob <mdrob@apache.org>
2018-06-01 19:17:49 +02:00
Peter Somogyi c4ebf666b7 HBASE-20376 RowCounter and CellCounter documentations are incorrect 2018-04-12 10:00:38 +02:00
Sean Busbey de57d08226 HBASE-20276 restore original shell REPL functionality where commands can return results
* makes commands always pass any results back to hirb
* print warning if hirb is given the --return-values flag
* add some docs on how to avoid the console clutter that HBASE-15965 sought to address
* add an upgrade section note about this change.
* cleanup where the get_splits command does its printing so there's a building block that doesn't print
* some rubocop suggested tweaks and opt-out for classlength check on table and shell classes.

Signed-off-by: Mike Drob <mdrob@apache.org>
2018-04-06 13:03:15 -05:00
Mike Drob d57001ee2d HBASE-20282 Clean up tooling docs/help 2018-03-30 08:59:47 -07:00
Umesh Agashe f7eefaa126 HBASE-20130 (ADDENDUM) Use defaults (16020 & 16030) as base ports when the RS is bound to localhost
* fixed shellcheck errors
  * modified script to set environment variabless HBASE_RS_BASE_PORT, HBASE_RS_INFO_BASE_PORT to defaults only if its not already set
  * modified ref guide for default master ports and setting environment variables HBASE_RS_BASE_PORT, HBASE_RS_INFO_BASE_PORT for supporting more than 10 instances for region server on localhost.

Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
Signed-off-by: Sean Busbey <busbey@apache.org>
2018-03-27 21:24:12 -05:00
Umesh Agashe a73f4d84a0 HBASE-20130 Use defaults (16020 & 16030) as base ports when the RS is bound to localhost
Base ports are changed to defaults 16020 & 16030 when RS binds to localhost. This is mostly used in pseudo distributed mode.
2018-03-26 14:11:20 -07:00
Balazs Meszaros 67a304d39f HBASE-20187 Shell startup fails with IncompatibleClassChangeError
Signed-off-by: Josh Elser <elserj@apache.org>
2018-03-14 15:55:33 -04:00
Josh Elser 2402f1fd43 HBASE-20108 Remove jline exclusion from ZooKeeper 2018-03-05 15:33:51 -05:00
Csaba Skrabak ff550edabf HBASE-19114 addendum. Split out o.a.h.h.zookeeper from hbase-server and hbase-client. Ruby scripts also used ZooKeeperWatcher.
Signed-off-by: Apekshit Sharma <appy@apache.org>
2018-03-03 21:06:53 +05:30
Mike Drob b1729a298b
HBASE-19784 bin/stop-hbase more friendly when hbase already stopped
Signed-off-by: Michael Stack <stack@apache.org>
2018-01-17 15:48:53 -08:00
Josh Elser 7224546b1e HBASE-19770 Separate command return values from interactive shells
Uses a new option to the shell to specify that return values are
unwanted instead of overloading the interactive option. Enable
return_values when the shell is non-interactive.

Signed-off-by: Apekshit Sharma <appy@apache.org>
2018-01-17 13:14:46 -05:00
Mike Drob ea7d5fc884 HBASE-19552 Update hbase-thirdparty version
Some manual cleanup of changing package names in pom files and getting
rid of the no-longer-needed netty system property.

This commit will break compilation, package renames in source code are
done in follow-on commits using straightforward find and replace.

's/org.apache.hadoop.hbase.shaded.com.google/org.apache.hbase.thirdparty.com.google/'
's/org.apache.hadoop.hbase.shaded.io.netty/org.apache.hbase.thirdparty.io.netty/'
2017-12-28 11:41:42 -06:00
Apekshit Sharma 5f02bf5b7b HBASE-10092 Addendum. Move to slf4j. Few changes in bin/ scripts. 2017-12-21 19:22:00 -08:00
Apekshit Sharma 330b0d05b9 HBASE-19114 Split out o.a.h.h.zookeeper from hbase-server and hbase-client
- Moved DrainingServerTracker and RegionServerTracker to hbase-server:o.a.h.h.master.
- Moved SplitOrMergeTracker to oahh.master (because it depends on a PB)
- Moving hbase-client:oahh.zookeeper.*  to hbase-zookeeper module.  After HBASE-19200, hbase-client doesn't need them anymore (except 3 classes).
- Renamed some classes to use a consistent naming for classes - ZK instead of mix of ZK, Zk , ZooKeeper. Couldn't rename following public classes: MiniZooKeeperCluster, ZooKeeperConnectionException. Left RecoverableZooKeeper for lack of better name. (suggestions?)
- Sadly, can't move tests out because they depend on HBaseTestingUtility (which defeats part of the purpose - trimming down hbase-server tests. We need to promote more use of mocks in our tests)
2017-11-17 13:20:18 -08:00
Apekshit Sharma 31234eb862 HBASE-16459 Remove unused hbase shell --format option 2017-11-10 00:08:02 -08:00
Artem Ervits b3e438b9c5 HBASE-19140 hbase-cleanup.sh uses deprecated call to remove files in hdfs
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-11-01 10:30:49 -07:00
Jerry He a43a00e89c HBASE-10367 RegionServer graceful stop / decommissioning
Signed-off-by: Jerry He <jerryjch@apache.org>
2017-10-19 21:54:45 -07:00
Chia-Ping Tsai 87c3ae9314 HBASE-18780 Remove HLogPrettyPrinter
Signed-off-by: Michael Stack <stack@apache.org>
2017-09-08 10:20:20 -07:00
Tamas Penzes bbf23d9627 HBASE-18369 hbase thrift web-ui not available
classpath issue when running as a developer fixed
removed thrift webapp from server (it's not used at all, since moved to thrift webapp)

Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-08-28 08:45:57 -07:00
Balazs Meszaros a7270cc08c HBASE-18705 bin/hbase does not find cached_classpath.txt
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-08-28 04:09:05 -07:00
Mike Drob ea8fa59a4c HBASE-18238 rubocop autocorrect for bin/ 2017-08-14 13:53:37 -05:00
Michael Stack c6ac04ab39 HBASE-18271 Shade netty Purge mention of netty-all.
Add in hbase-thirdparty hbase-shaded-netty instead.
s/io.netty/org.apache.hadoop.hbase.shaded.io.netty/ everywhere in hbase.

Also set a system property when running tests and when starting
hbase; required by netty so can find the relocation files in the
bundled .so.
2017-08-13 12:46:21 -07:00
Mike Drob 775179bc4a HBASE-18393 Fix shell noninteractive launch
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-07-19 13:54:55 -05:00
Samir Ahmic 56d00f574b HBASE-18392 Add default value of --movetimeout to rolling-restart.sh
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-07-18 07:04:29 -07:00
tedyu c015abe507 HBASE-18274 hbase autorestart will overwrite the gc log (Fangyuan Deng) 2017-06-27 08:03:26 -07:00
Chinmay Kulkarni df06294915 HBASE-17988 get-active-master.rb and draining_servers.rb no longer work
Modified jruby scripts to pick up drainingZNode and masterAddressZNode
correctly, from within znodePaths in ZooKeeperWatcher. Modified
get-active-master.rb to retrieve server name using MasterAddressTracker
instead of ZKUtil.

Tested on a standalone HBase deployment to check that the scripts work
as expected.

Signed-off-by: Sean Busbey <busbey@apache.org>
Signed-off-by: Mike Drob <mdrob@apache.org>
2017-06-20 01:06:47 -05:00
Mike Drob 140ce1453e HBASE-16196 Update to JRuby 9.1.9.0
* Get hbase-shell to use latest current JRuby release.
* Update license information to reflect the changes to jruby-complete.jar
* Update shell scripts for Ruby 1.8->2.x incompatabilities
* Update joni and jcodings to compatible versions

Signed-off-by: Sean Busbey <busbey@apache.org>
2017-05-31 11:09:07 -05:00
Xiang Li 4ab94744e2 HBASE-17997: In dev environment, add jruby-complete jar to classpath only when jruby is needed
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-05-25 08:07:50 -07:00
Xiang Li b67f6fecc1 HBASE-15199 (addendum) - When JRUBY_HOME is specified, update CLASSPATH and HBASE_OPTS when jruby is needed
Signed-off-by: Sean Busbey <busbey@apache.org>
Signed-off-by: tedyu <yuzhihong@gmail.com>
Signed-off-by: Jerry He <jerryjch@apache.org>
2017-05-09 16:12:45 -05:00
Xiang Li 083796d2e6 HBASE-15199 Move jruby jar so only on runtime classpath for hbase-shell and support scripts.
Signed-off-by: Sean Busbey <busbey@apache.org>
Signed-off-by: Jerry He <jerryjch@apache.org>
2017-05-02 16:05:54 -05:00