Search in sources :

Example 1 with ReplicationPeerNotFoundException

use of org.apache.hadoop.hbase.ReplicationPeerNotFoundException in project hbase by apache.

the class TestRegionReplicaReplicationEndpoint method testRegionReplicaReplicationPeerIsCreated.

@Test
public void testRegionReplicaReplicationPeerIsCreated() throws IOException, ReplicationException {
    // create a table with region replicas. Check whether the replication peer is created
    // and replication started.
    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());
    String peerId = "region_replica_replication";
    ReplicationPeerConfig peerConfig = null;
    try {
        peerConfig = admin.getPeerConfig(peerId);
    } catch (ReplicationPeerNotFoundException e) {
        LOG.warn("Region replica replication peer id=" + peerId + " not exist", e);
    }
    if (peerConfig != null) {
        admin.removePeer(peerId);
        peerConfig = null;
    }
    HTableDescriptor htd = HTU.createTableDescriptor("testReplicationPeerIsCreated_no_region_replicas");
    HTU.getAdmin().createTable(htd);
    try {
        peerConfig = admin.getPeerConfig(peerId);
        fail("Should throw ReplicationException, because replication peer id=" + peerId + " not exist");
    } catch (ReplicationPeerNotFoundException e) {
    }
    assertNull(peerConfig);
    htd = HTU.createTableDescriptor("testReplicationPeerIsCreated");
    htd.setRegionReplication(2);
    HTU.getAdmin().createTable(htd);
    // assert peer configuration is correct
    peerConfig = admin.getPeerConfig(peerId);
    assertNotNull(peerConfig);
    assertEquals(peerConfig.getClusterKey(), ZKConfig.getZooKeeperClusterKey(HTU.getConfiguration()));
    assertEquals(peerConfig.getReplicationEndpointImpl(), RegionReplicaReplicationEndpoint.class.getName());
    admin.close();
}
Also used : ReplicationPeerConfig(org.apache.hadoop.hbase.replication.ReplicationPeerConfig) ReplicationPeerNotFoundException(org.apache.hadoop.hbase.ReplicationPeerNotFoundException) ReplicationAdmin(org.apache.hadoop.hbase.client.replication.ReplicationAdmin) HTableDescriptor(org.apache.hadoop.hbase.HTableDescriptor) Test(org.junit.Test)

Example 2 with ReplicationPeerNotFoundException

use of org.apache.hadoop.hbase.ReplicationPeerNotFoundException in project hbase by apache.

the class ServerRegionReplicaUtil method setupRegionReplicaReplication.

/**
   * Create replication peer for replicating to region replicas if needed.
   * @param conf configuration to use
   * @throws IOException
   */
public static void setupRegionReplicaReplication(Configuration conf) throws IOException {
    if (!isRegionReplicaReplicationEnabled(conf)) {
        return;
    }
    Admin admin = ConnectionFactory.createConnection(conf).getAdmin();
    ReplicationPeerConfig peerConfig = null;
    try {
        peerConfig = admin.getReplicationPeerConfig(REGION_REPLICA_REPLICATION_PEER);
    } catch (ReplicationPeerNotFoundException e) {
        LOG.warn("Region replica replication peer id=" + REGION_REPLICA_REPLICATION_PEER + " not exist", e);
    }
    try {
        if (peerConfig == null) {
            LOG.info("Region replica replication peer id=" + REGION_REPLICA_REPLICATION_PEER + " not exist. Creating...");
            peerConfig = new ReplicationPeerConfig();
            peerConfig.setClusterKey(ZKConfig.getZooKeeperClusterKey(conf));
            peerConfig.setReplicationEndpointImpl(RegionReplicaReplicationEndpoint.class.getName());
            admin.addReplicationPeer(REGION_REPLICA_REPLICATION_PEER, peerConfig);
        }
    } finally {
        admin.close();
    }
}
Also used : RegionReplicaReplicationEndpoint(org.apache.hadoop.hbase.replication.regionserver.RegionReplicaReplicationEndpoint) ReplicationPeerConfig(org.apache.hadoop.hbase.replication.ReplicationPeerConfig) ReplicationPeerNotFoundException(org.apache.hadoop.hbase.ReplicationPeerNotFoundException) Admin(org.apache.hadoop.hbase.client.Admin) ReplicationAdmin(org.apache.hadoop.hbase.client.replication.ReplicationAdmin)

Example 3 with ReplicationPeerNotFoundException

use of org.apache.hadoop.hbase.ReplicationPeerNotFoundException in project hbase by apache.

the class TestReplicationAdmin method testEnableDisable.

/**
   * basic checks that when we add a peer that it is enabled, and that we can disable
   * @throws Exception
   */
@Test
public void testEnableDisable() throws Exception {
    ReplicationPeerConfig rpc1 = new ReplicationPeerConfig();
    rpc1.setClusterKey(KEY_ONE);
    admin.addPeer(ID_ONE, rpc1, null);
    assertEquals(1, admin.getPeersCount());
    assertTrue(admin.getPeerState(ID_ONE));
    admin.disablePeer(ID_ONE);
    assertFalse(admin.getPeerState(ID_ONE));
    try {
        admin.getPeerState(ID_SECOND);
    } catch (ReplicationPeerNotFoundException e) {
    // OK!
    }
    admin.removePeer(ID_ONE);
}
Also used : ReplicationPeerConfig(org.apache.hadoop.hbase.replication.ReplicationPeerConfig) ReplicationPeerNotFoundException(org.apache.hadoop.hbase.ReplicationPeerNotFoundException) Test(org.junit.Test)

Example 4 with ReplicationPeerNotFoundException

use of org.apache.hadoop.hbase.ReplicationPeerNotFoundException in project hbase by apache.

the class TestRegionReplicaReplicationEndpoint method testRegionReplicaReplicationPeerIsCreatedForModifyTable.

@Test(timeout = 240000)
public void testRegionReplicaReplicationPeerIsCreatedForModifyTable() throws Exception {
    // modify a table by adding region replicas. Check whether the replication peer is created
    // and replication started.
    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());
    String peerId = "region_replica_replication";
    ReplicationPeerConfig peerConfig = null;
    try {
        peerConfig = admin.getPeerConfig(peerId);
    } catch (ReplicationPeerNotFoundException e) {
        LOG.warn("Region replica replication peer id=" + peerId + " not exist", e);
    }
    if (peerConfig != null) {
        admin.removePeer(peerId);
        peerConfig = null;
    }
    HTableDescriptor htd = HTU.createTableDescriptor("testRegionReplicaReplicationPeerIsCreatedForModifyTable");
    HTU.getAdmin().createTable(htd);
    // assert that replication peer is not created yet
    try {
        peerConfig = admin.getPeerConfig(peerId);
        fail("Should throw ReplicationException, because replication peer id=" + peerId + " not exist");
    } catch (ReplicationPeerNotFoundException e) {
    }
    assertNull(peerConfig);
    HTU.getAdmin().disableTable(htd.getTableName());
    htd.setRegionReplication(2);
    HTU.getAdmin().modifyTable(htd.getTableName(), htd);
    HTU.getAdmin().enableTable(htd.getTableName());
    // assert peer configuration is correct
    peerConfig = admin.getPeerConfig(peerId);
    assertNotNull(peerConfig);
    assertEquals(peerConfig.getClusterKey(), ZKConfig.getZooKeeperClusterKey(HTU.getConfiguration()));
    assertEquals(peerConfig.getReplicationEndpointImpl(), RegionReplicaReplicationEndpoint.class.getName());
    admin.close();
}
Also used : ReplicationPeerConfig(org.apache.hadoop.hbase.replication.ReplicationPeerConfig) ReplicationPeerNotFoundException(org.apache.hadoop.hbase.ReplicationPeerNotFoundException) ReplicationAdmin(org.apache.hadoop.hbase.client.replication.ReplicationAdmin) HTableDescriptor(org.apache.hadoop.hbase.HTableDescriptor) Test(org.junit.Test)

Aggregations

ReplicationPeerNotFoundException (org.apache.hadoop.hbase.ReplicationPeerNotFoundException)4 ReplicationPeerConfig (org.apache.hadoop.hbase.replication.ReplicationPeerConfig)4 ReplicationAdmin (org.apache.hadoop.hbase.client.replication.ReplicationAdmin)3 Test (org.junit.Test)3 HTableDescriptor (org.apache.hadoop.hbase.HTableDescriptor)2 Admin (org.apache.hadoop.hbase.client.Admin)1 RegionReplicaReplicationEndpoint (org.apache.hadoop.hbase.replication.regionserver.RegionReplicaReplicationEndpoint)1