This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-22514 in repository https://gitbox.apache.org/repos/asf/hbase.git
commit 660d105febe554fcdfa19848f17e71a52fa22878 Author: Duo Zhang <zhang...@apache.org> AuthorDate: Sun Feb 9 10:33:32 2020 +0800 HBASE-23807 Make rsgroup related shell command to use the new admin methods (#1148) Signed-off-by: stack <st...@apache.org> --- hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb | 32 +++++++++++++--------- .../src/main/ruby/shell/commands/get_rsgroup.rb | 3 +- .../src/main/ruby/shell/commands/list_rsgroups.rb | 4 +-- .../hadoop/hbase/client/TestRSGroupShell.java | 11 ++------ .../src/test/ruby/shell/rsgroup_shell_test.rb | 30 ++++++++++---------- 5 files changed, 39 insertions(+), 41 deletions(-) diff --git a/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb b/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb index 4e32ea4..cdfeec9 100644 --- a/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb +++ b/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb @@ -27,8 +27,7 @@ module Hbase def initialize(connection) @connection = connection - @admin = org.apache.hadoop.hbase.rsgroup.RSGroupAdminClient.new(connection) - @hb_admin = @connection.getAdmin + @admin = @connection.getAdmin end def close @@ -44,7 +43,7 @@ module Hbase #-------------------------------------------------------------------------- # get a group's information def get_rsgroup(group_name) - group = @admin.getRSGroupInfo(group_name) + group = @admin.getRSGroup(group_name) raise(ArgumentError, 'Group does not exist: ' + group_name) if group.nil? group end @@ -74,7 +73,7 @@ module Hbase args[0].each do |s| servers.add(org.apache.hadoop.hbase.net.Address.fromString(s)) end - @admin.moveServers(servers, dest) + @admin.moveServersToRSGroup(servers, dest) end #-------------------------------------------------------------------------- @@ -84,20 +83,20 @@ module Hbase args[0].each do |s| tables.add(org.apache.hadoop.hbase.TableName.valueOf(s)) end - @admin.moveTables(tables, dest) + @admin.setRSGroup(tables, dest) end #-------------------------------------------------------------------------- # move namespaces to a group def move_namespaces(dest, *args) tables = get_tables(args[0]) - @admin.moveTables(tables, dest) + @admin.setRSGroup(tables, dest) end #-------------------------------------------------------------------------- # get group of server def get_rsgroup_of_server(server) - res = @admin.getRSGroupOfServer( + res = @admin.getRSGroup( org.apache.hadoop.hbase.net.Address.fromString(server) ) raise(ArgumentError, 'Server has no group: ' + server) if res.nil? @@ -107,7 +106,7 @@ module Hbase #-------------------------------------------------------------------------- # get group of table def get_rsgroup_of_table(table) - res = @admin.getRSGroupInfoOfTable( + res = @admin.getRSGroup( org.apache.hadoop.hbase.TableName.valueOf(table) ) raise(ArgumentError, 'Table has no group: ' + table) if res.nil? @@ -122,7 +121,8 @@ module Hbase args[1].each do |t| tables.add(org.apache.hadoop.hbase.TableName.valueOf(t)) end - @admin.moveServersAndTables(servers, tables, dest) + @admin.moveServersToRSGroup(servers, dest) + @admin.setRSGroup(tables, dest) end #-------------------------------------------------------------------------- @@ -130,7 +130,8 @@ module Hbase def move_servers_namespaces(dest, *args) servers = get_servers(args[0]) tables = get_tables(args[1]) - @admin.moveServersAndTables(servers, tables, dest) + @admin.moveServersToRSGroup(servers, dest) + @admin.setRSGroup(tables, dest) end def get_servers(servers) @@ -154,7 +155,7 @@ module Hbase # Get tables by namespace def get_tables_by_namespace(ns) tables = java.util.HashSet.new - tablelist = @hb_admin.listTableNamesByNamespace(ns).map(&:getNameAsString) + tablelist = @admin.listTableNamesByNamespace(ns).map(&:getNameAsString) tablelist.each do |table| tables.add(org.apache.hadoop.hbase.TableName.valueOf(table)) end @@ -163,7 +164,7 @@ module Hbase # Does Namespace exist def namespace_exists?(ns) - return !@hb_admin.getNamespaceDescriptor(ns).nil? + return !@admin.getNamespaceDescriptor(ns).nil? rescue org.apache.hadoop.hbase.NamespaceNotFoundException return false end @@ -177,7 +178,12 @@ module Hbase args.each do |s| servers.add(org.apache.hadoop.hbase.net.Address.fromString(s)) end - @admin.removeServers(servers) + @admin.removeServersFromRSGroup(servers) + end + + # get tables in rs group + def list_tables_in_rs_group(group_name) + @admin.listTablesInRSGroup(group_name) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/get_rsgroup.rb b/hbase-shell/src/main/ruby/shell/commands/get_rsgroup.rb index 8f5b1c1..dc4200a 100644 --- a/hbase-shell/src/main/ruby/shell/commands/get_rsgroup.rb +++ b/hbase-shell/src/main/ruby/shell/commands/get_rsgroup.rb @@ -39,7 +39,8 @@ EOF formatter.footer formatter.header(['TABLES']) - group.getTables.each do |table| + tables = rsgroup_admin.list_tables_in_rs_group(group_name) + tables.each do |table| formatter.row([table.getNameAsString]) end formatter.footer diff --git a/hbase-shell/src/main/ruby/shell/commands/list_rsgroups.rb b/hbase-shell/src/main/ruby/shell/commands/list_rsgroups.rb index dc33b85..a891411 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_rsgroups.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_rsgroups.rb @@ -54,8 +54,8 @@ EOF formatter.row([group_name, 'server ' + server.toString]) end - - group.getTables.each do |table| + tables = rsgroup_admin.list_tables_in_rs_group(group.getName) + tables.each do |table| if group_name_printed group_name = '' else diff --git a/hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestRSGroupShell.java b/hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestRSGroupShell.java index 68ec518..17e8d5d 100644 --- a/hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestRSGroupShell.java +++ b/hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestRSGroupShell.java @@ -19,10 +19,7 @@ package org.apache.hadoop.hbase.client; import java.io.IOException; import org.apache.hadoop.hbase.HBaseClassTestRule; -import org.apache.hadoop.hbase.HConstants; -import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; -import org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint; -import org.apache.hadoop.hbase.rsgroup.RSGroupBasedLoadBalancer; +import org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager; import org.apache.hadoop.hbase.testclassification.ClientTests; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.jruby.embed.PathType; @@ -43,11 +40,7 @@ public class TestRSGroupShell extends AbstractTestShell { setUpConfig(); // enable rs group - TEST_UTIL.getConfiguration().set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, - TEST_UTIL.getConfiguration().get(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY) + "," + - RSGroupAdminEndpoint.class.getName()); - TEST_UTIL.getConfiguration().set(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, - RSGroupBasedLoadBalancer.class.getName()); + TEST_UTIL.getConfiguration().setBoolean(RSGroupInfoManager.RS_GROUP_ENABLED, true); TEST_UTIL.startMiniCluster(3); diff --git a/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb b/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb index ab7ba0d..3a44a12 100644 --- a/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb +++ b/hbase-shell/src/test/ruby/shell/rsgroup_shell_test.rb @@ -26,8 +26,7 @@ module Hbase @hbase = ::Hbase::Hbase.new($TEST_CLUSTER.getConfiguration) @shell = Shell::Shell.new(@hbase) connection = $TEST_CLUSTER.getConnection - @rsgroup_admin = - org.apache.hadoop.hbase.rsgroup.RSGroupAdminClient.new(connection) + @admin = connection.getAdmin end define_test 'Test Basic RSGroup Commands' do @@ -37,37 +36,36 @@ module Hbase @shell.command('create', table_name, 'f') @shell.command('add_rsgroup', group_name) - assert_not_nil(@rsgroup_admin.getRSGroupInfo(group_name)) + assert_not_nil(@admin.getRSGroup(group_name)) @shell.command('remove_rsgroup', group_name) - assert_nil(@rsgroup_admin.getRSGroupInfo(group_name)) + assert_nil(@admin.getRSGroup(group_name)) @shell.command('add_rsgroup', group_name) - group = @rsgroup_admin.getRSGroupInfo(group_name) + group = @admin.getRSGroup(group_name) assert_not_nil(group) assert_equal(0, group.getServers.count) - hostport = @rsgroup_admin.getRSGroupInfo('default').getServers.iterator.next + hostport = @admin.getRSGroup('default').getServers.iterator.next @shell.command('get_rsgroup', 'default') hostPortStr = hostport.toString @shell.command('get_server_rsgroup', hostPortStr) @shell.command('move_servers_rsgroup', group_name, [hostPortStr]) - assert_equal(1, @rsgroup_admin.getRSGroupInfo(group_name).getServers.count) - assert_equal(group_name, @rsgroup_admin.getRSGroupOfServer(hostport).getName) + assert_equal(1, @admin.getRSGroup(group_name).getServers.count) + assert_equal(group_name, @admin.getRSGroup(hostport).getName) @shell.command('move_tables_rsgroup', group_name, [table_name]) - assert_equal(1, @rsgroup_admin.getRSGroupInfo(group_name).getTables.count) + assert_equal(1, @admin.listTablesInRSGroup(group_name).count) group = @hbase.rsgroup_admin.get_rsgroup(group_name) assert_not_nil(group) assert_equal(1, group.getServers.count) - assert_equal(1, group.getTables.count) assert_equal(hostPortStr, group.getServers.iterator.next.toString) - assert_equal(table_name, group.getTables.iterator.next.toString) + assert_equal(table_name, @admin.listTablesInRSGroup(group_name).iterator.next.toString) assert_equal(2, @hbase.rsgroup_admin.list_rs_groups.count) @@ -86,11 +84,11 @@ module Hbase @shell.command('move_namespaces_rsgroup', group_name, [namespace_name]) - assert_equal(2, @rsgroup_admin.getRSGroupInfo(group_name).getTables.count) + assert_equal(2, @admin.listTablesInRSGroup(group_name).count) group = @hbase.rsgroup_admin.get_rsgroup(group_name) assert_not_nil(group) - assert_equal(ns_table_name, group.getTables.iterator.next.toString) + assert_true(@admin.listTablesInRSGroup(group_name).contains(org.apache.hadoop.hbase.TableName.valueOf(ns_table_name))) end define_test 'Test RSGroup Move Server Namespace RSGroup Commands' do @@ -99,13 +97,13 @@ module Hbase ns_table_name = 'test_namespace:test_ns_table' @shell.command('add_rsgroup', ns_group_name) - assert_not_nil(@rsgroup_admin.getRSGroupInfo(ns_group_name)) + assert_not_nil(@admin.getRSGroup(ns_group_name)) @shell.command('move_tables_rsgroup', 'default', [ns_table_name]) - group_servers = @rsgroup_admin.getRSGroupInfo('default').getServers + group_servers = @admin.getRSGroup('default').getServers hostport_str = group_servers.iterator.next.toString @shell.command('move_servers_namespaces_rsgroup', ns_group_name, @@ -114,7 +112,7 @@ module Hbase ns_group = @hbase.rsgroup_admin.get_rsgroup(ns_group_name) assert_not_nil(ns_group) assert_equal(hostport_str, ns_group.getServers.iterator.next.toString) - assert_equal(ns_table_name, ns_group.getTables.iterator.next.toString) + assert_equal(ns_table_name, @admin.listTablesInRSGroup(ns_group_name).iterator.next.toString) end # we test exceptions that could be thrown by the ruby wrappers