def sync_region_info(self, id_region=None): if id_region is None: id_region = self.id_region meta_table = HTable(self.conf, HConstants.META_TABLE_NAME) gobj = Get(Bytes.toBytes(id_region)) result = meta_table.get(gobj) bytes = result.getValue(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER) hri = None try: hri = Writables.getHRegionInfo(bytes) except java.lang.NullPointerException: raise PHBaseException("could to retrieve region info for %s" % (id_region)) self.start_key = jls(hri.getStartKey()) self.end_key = jls(hri.getEndKey()) self.name = jls(hri.getRegionName()) self.table_name = HTable(hri.getTableDesc().getName()) self.offline = hri.isOffline() self.obj = hri
while True: errors = 0 result = scanner.next() if not result: # end of table break rowid = Bytes.toString(result.getRow()) rowidStr = jls(rowid) bytes = result.getValue(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER) try: curr_region = Writables.getHRegionInfo(bytes) except java.lang.NullPointerException: print >> sys.stderr, 'ERROR: %s error while reading region info' % \ (jls(result.getRow())) errors += 1 prev_region = None continue s_key = jls(curr_region.getStartKey()) e_key = jls(curr_region.getEndKey()) curr_region_name = hbaseutils.get_region_name(curr_region) prev_region_name = None