Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
-
Reviewed
Description
We deployed a cluster that none of the regionserver supports the compression codec such like "lzo", but the cluster user/client does not know this, and he specifies the family's compression codec by HColumnDescripto.setCompressionType(Compresson.Algorithm.LZO);
Because the HBaseAdmin's createTable is async, so the client is waiting all the regions of the table to be online forever. And client does not know why the regions are not online until the HBase administrator find this problem.
In deed, all of the regions are assigning by master, but regionserver's openHRegion always failed.
In my option, we can suppose all the cluster's enviroment are the same, means if the master is deployed some lib, the regionserver should also be deployed.
Of course above is just a supposeļ¼ in real deployment, the hbase dba may just deploy lib on regionserver or master.
So I think this failure can be found earlier before master create the CreateTableHandler thread, and we can tell client quickly we didn't support this compression codec type.
I will upload the patch later.