You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (JIRA)" <ji...@apache.org> on 2013/05/31 06:31:23 UTC
[jira] [Comment Edited] (HBASE-8663) a HBase Shell command to list
the tables replicated (from or to) current cluster
[ https://issues.apache.org/jira/browse/HBASE-8663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13671144#comment-13671144 ]
Anoop Sam John edited comment on HBASE-8663 at 5/31/13 4:29 AM:
----------------------------------------------------------------
U have been not added to the contributors list yet. Can add you later and assign. You can work on the patch and attach.(Generally adding to the contributors list can happen after uploading atleast one patch)
Slave side, a table is created in slave cluster by the admin in accordance with the table schema in the Master side(which all cfs to be replicated). Can this table be marked as for replication at the creation time itself and later while listing this marking can be used? See HTableDescriptor#setValue(). Just an initial thought.. Not analyzed detail..:)
was (Author: anoop.hbase):
U have been not added to the contributors list yet. Can add you later and assign. You can work on the patch and attach.(Generally adding to the contributors list can happen after uploading atleast one patch)
Slave side, a table is created in slave cluster by the admin in accordance with the table schema in the Master side(which all cfs to be replicated). Can this table be marked as for replication at the creation time itself and later while listing this marking can be used? See HTableDescriptor#setValue()
> a HBase Shell command to list the tables replicated (from or to) current cluster
> --------------------------------------------------------------------------------
>
> Key: HBASE-8663
> URL: https://issues.apache.org/jira/browse/HBASE-8663
> Project: HBase
> Issue Type: Improvement
> Components: Replication
> Environment: clusters setup as Master and Slave for replication of tables
> Reporter: Demai Ni
> Priority: Minor
>
> This jira is to provide a hbase shell command which can give user can overview of the tables/columnfamilies currently being replicated. The information will help system administrator for design and planning, and also help application programmer to know which tables/columns should be watchout(for example, not to modify a replicated columnfamily on the slave cluster)
> Currently there is no easy way to tell which table(s)/columnfamily(ies)
> replicated from or to a particular cluster.
>
> On Master Cluster, an indirect method can be used by combining two steps: 1) $describe 'usertable' and 2) $list_peers to map the REPLICATION_SCOPE to target(aka slave) cluster
>
> On slave cluster, this is no existing API/methods to list all the tables replicated to this cluster.
> Here is an example, and prototype for Master cluster
> {code: title=hbase shell command:list_replicated_tables |borderStyle=solid}
> hbase(main):001:0> list_replicated_tables
> TABLE COLUMNFAMILY TARGET_CLUSTER
> scores course hdtest017.svl.ibm.com:2181:/hbase
> t3_dn cf1 hdtest017.svl.ibm.com:2181:/hbase
> usertable family hdtest017.svl.ibm.com:2181:/hbase
> 3 row(s) in 0.3380 seconds
> {code}
> {code: title=method to return all columnfamilies replicated from this cluster |borderStyle=solid}
> /**
> * ReplicationAdmin.listRepllicated
> * @return List of the replicated columnfamilies of this cluster for display.
> * @throws IOException
> */
> public List<String[]> listReplicated() throws IOException {
> List<String[]> replicatedColFams = new ArrayList<String[]>();
>
> HTableDescriptor[] tables;
>
> tables= this.connection.listTables();
>
> Map<String, String> peers = listPeers();
>
> for (HTableDescriptor table:tables) {
> HColumnDescriptor[] columns = table.getColumnFamilies();
> String tableName = table.getNameAsString();
> for (HColumnDescriptor column: columns) {
> int scope = column.getScope();
>
> if (scope!=0) {
> String[] replicatedEntry = new String[3];
> replicatedEntry[0] = tableName;
> replicatedEntry[1] = column.getNameAsString();
> replicatedEntry[2] = peers.get(Integer.toString(scope));
> replicatedColFams.add(replicatedEntry);
> }
> }
> }
>
> return replicatedColFams;
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira