示例#1
0
文件: region.py 项目: meyarivan/misc
    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
示例#2
0
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