[
https://issues.apache.org/jira/browse/HBASE-3918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stack resolved HBASE-3918.
--------------------------
Resolution: Not A Problem
Resolving as 'not a problem'. When I look at bulk assigning code that tries to
retain assignments, I see that for each region we are to assign, we check that
the ServerName is known -- that it is a server that has registered itself on
cluster start:
{code}
int numRandomAssignments = 0;
int numRetainedAssigments = 0;
for (Map.Entry<HRegionInfo, ServerName> entry : regions.entrySet()) {
HRegionInfo region = entry.getKey();
ServerName oldServerName = entry.getValue();
List<ServerName> localServers = new ArrayList<ServerName>();
if (oldServerName != null) {
localServers = serversByHostname.get(oldServerName.getHostname());
}
if (localServers.isEmpty()) {
// No servers on the new cluster match up with this hostname,
// assign randomly.
ServerName randomServer = servers.get(RANDOM.nextInt(servers.size()));
...
{code}
We can open new issue if we run into this again.
> When assigning regions to an address, check the regionserver is actually
> online first
> -------------------------------------------------------------------------------------
>
> Key: HBASE-3918
> URL: https://issues.apache.org/jira/browse/HBASE-3918
> Project: HBase
> Issue Type: Bug
> Reporter: stack
>
> This one came up in the case where the data was copied from one cluster to
> another. The first cluster was running 0.89.x. The second 0.90.x. On
> startup of 0.90.x, it wanted to verify .META. was in the location -ROOT- said
> it was at, so it tried connect to the FIRST cluster. The attempt failed
> because of mismatched RPCs. The master then actually aborted.
> {code}
> org.apache.hadoop.hbase.ipc.HBaseRPC$VersionMismatch: Protocol
> org.apache.hadoop.hbase.ipc.HRegionInterface version mismatch. (client = 27,
> server = 24)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:424)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:349)
> at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:965)
> at
> org.apache.hadoop.hbase.catalog.CatalogTracker.getCachedConnection(CatalogTracker.java:386)
> at
> org.apache.hadoop.hbase.catalog.CatalogTracker.getMetaServerConnection(CatalogTracker.java:285)
> at
> org.apache.hadoop.hbase.catalog.CatalogTracker.verifyMetaRegionLocation(CatalogTracker.java:486)
> at org.apache.hadoop.hbase.master.HMaster.assignRootAndMeta(HMaster.java:442)
> at
> org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:389)
> at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:283)
> 2011-05-23 22:38:07,720 INFO org.apache.hadoop.hbase.master.HMaster: Aborting
> {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