[
https://issues.apache.org/jira/browse/HBASE-22514?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang updated HBASE-22514:
------------------------------
Release Note:
Moved rs group feature into core. Use this flag
'hbase.balancer.rsgroup.enabled' to enable or disable it.
The coprocessor org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint is
deprected, but for compatible, if you want the pre 3.0.0 hbase client/shell to
communicate with the new hbase cluster, you still need to add this coprocessor
to master. And if this coprocessor is specified, the above flag will be set to
true automatically to enable rs group feature.
These methods are added to the Admin/AsyncAdmin interface for managing rs
groups. See the javadoc of these methods for more details.
void addRSGroup(String groupName) throws IOException;
RSGroupInfo getRSGroup(String groupName) throws IOException;
RSGroupInfo getRSGroup(Address hostPort) throws IOException;
RSGroupInfo getRSGroup(TableName tableName) throws IOException;
List<RSGroupInfo> listRSGroups() throws IOException;
List<TableName> listTablesInRSGroup(String groupName) throws IOException;
Pair<List<String>, List<TableName>>
getConfiguredNamespacesAndTablesInRSGroup(String groupName) throws IOException;
void removeRSGroup(String groupName) throws IOException;
void removeServersFromRSGroup(Set<Address> servers) throws IOException;
void moveServersToRSGroup(Set<Address> servers, String targetGroup) throws
IOException;
void setRSGroup(Set<TableName> tables, String groupName) throws IOException;
boolean balanceRSGroup(String groupName) throws IOException;
The shell commands for rs group are not changed.
The main difference on the implementation is that, now the rs group for a table
is stored in TableDescriptor, instead of in RSGroupInfo, so the getTables
method of RSGroupInfo has been deprecated. And if you use the above Admin
methods to get the RSGroupInfo, its getTables method will always return empty.
Of course the behavior for the old RSGroupAdminEndpoint is not changed, we will
fill the tables field of the RSGroupInfo before returning, to make it
compatible with old hbase client/shell.
When upgrading, the migration between the RSGroupInfo and TableDescriptor will
be done automatically. It will take sometime, but it is fine to restart master
in the middle, the migration will continue after restart.
was:
Moved rs group feature into core. Use this flag to enable or disable it.
The coprocessor org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint is
deprected, but for compatible, if you want the pre 3.0.0 hbase client/shell to
communicate with the new hbase cluster, you still need to add this coprocessor
to master. And if this coprocessor is specified, the above flag will be set to
true automatically to enable rs group feature.
These methods are added to the Admin/AsyncAdmin interface for managing rs
groups. See the javadoc of these methods for more details.
void addRSGroup(String groupName) throws IOException;
RSGroupInfo getRSGroup(String groupName) throws IOException;
RSGroupInfo getRSGroup(Address hostPort) throws IOException;
RSGroupInfo getRSGroup(TableName tableName) throws IOException;
List<RSGroupInfo> listRSGroups() throws IOException;
List<TableName> listTablesInRSGroup(String groupName) throws IOException;
Pair<List<String>, List<TableName>>
getConfiguredNamespacesAndTablesInRSGroup(String groupName) throws IOException;
void removeRSGroup(String groupName) throws IOException;
void removeServersFromRSGroup(Set<Address> servers) throws IOException;
void moveServersToRSGroup(Set<Address> servers, String targetGroup) throws
IOException;
void setRSGroup(Set<TableName> tables, String groupName) throws IOException;
boolean balanceRSGroup(String groupName) throws IOException;
The shell commands for rs group are not changed.
The main difference on the implementation is that, now the rs group for a table
is stored in TableDescriptor, instead of in RSGroupInfo, so the getTables
method of RSGroupInfo has been deprecated. And if you use the above Admin
methods to get the RSGroupInfo, its getTables method will always return empty.
Of course the behavior for the old RSGroupAdminEndpoint is not changed, we will
fill the tables field of the RSGroupInfo before returning, to make it
compatible with old hbase client/shell.
When upgrading, the migration between the RSGroupInfo and TableDescriptor will
be done automatically. It will take sometime, but it is fine to restart master
in the middle, the migration will continue after restart.
> Move rsgroup feature into core of HBase
> ---------------------------------------
>
> Key: HBASE-22514
> URL: https://issues.apache.org/jira/browse/HBASE-22514
> Project: HBase
> Issue Type: Umbrella
> Components: Admin, Client, rsgroup
> Reporter: Yechao Chen
> Assignee: Duo Zhang
> Priority: Major
> Attachments: HBASE-22514.master.001.patch,
> image-2019-05-31-18-25-38-217.png
>
>
> The class RSGroupAdminClient is not public
> we need to use java api RSGroupAdminClient to manager RSG
> so RSGroupAdminClient should be public
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)