我的生产系统是CDH3
,(旧的,但仍在使用中)
我有一些storefilesAizeMB
超过200K的地区。
我想知道我是否可以分割一个区域,同时也写入该区域?
答案 0 :(得分:0)
这就是Hbase在该地区成长时所做的事情。但这是一个缓慢的过程,它会影响你的写作性能。
最佳做法是在创建数据库时根据数据模型预压区域。这是一个小代码片段:
HTableDescriptor desc = new HTableDescriptor(tableName); // Tablename tablename
HColumnDescriptor coldef = new HColumnDescriptor(Bytes.toBytes("CON"));
desc.addFamily(coldef); // add the cf to the table
// function to get all regions looking at the data
// it is an array which stocks the prefix of each regions
byte[][] regions = getRegions();
admin.createTable(desc, regions);
答案 1 :(得分:0)
答案是否定的。
如果RegionServer未联机或抛出 NotServingRegionException,主服务器将区域移动到OFFLINE state并将其重新分配给不同的RegionServer。
见 https://hbase.apache.org/book.html#regions.arch.states 和 https://hbase.apache.org/book.html#arch.region.splits