You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2020/03/02 07:44:10 UTC
[hbase] 18/21: HBASE-23807 Make rsgroup related shell command to
use the new admin methods (#1148)
This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
commit 37e87aeca773f64d07b1e3f2353f2bc9018de385
Author: Duo Zhang <zh...@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