private Map<String, LegacyAceInfo> getAllAceInfo(Result result) throws IOException { Map<String, LegacyAceInfo> allAceInfoMap = new HashMap<>(); NavigableMap<byte[], byte[]> familyMap = result.getFamilyMap(Bytes.toBytes(AclConstant.ACL_ACES_FAMILY)); if (familyMap != null && !familyMap.isEmpty()) { for (Map.Entry<byte[], byte[]> entry : familyMap.entrySet()) { String sid = new String(entry.getKey(), StandardCharsets.UTF_8); LegacyAceInfo aceInfo = aceSerializer.deserialize(entry.getValue()); if (null != aceInfo) { allAceInfoMap.put(sid, aceInfo); } } } return allAceInfoMap; }
@Override public String[] next() { counter ++; if (counter % 100000 == 0) { logger.info("scanned {} rows from hBase", counter); } Result result = scannerIterator.next(); byte[] rowKey = result.getRow(); NavigableMap<byte[], byte[]> qualifierValMap = result.getFamilyMap(HBaseLookupRowEncoder.CF); return encoder.decode(new HBaseRow(rowKey, qualifierValMap)); }
protected static void parseUserResult(final String userName, final Result result, final UserQuotasVisitor visitor) throws IOException { Map<byte[], byte[]> familyMap = result.getFamilyMap(QUOTA_FAMILY_INFO); if (familyMap == null || familyMap.isEmpty()) return; for (Map.Entry<byte[], byte[]> entry: familyMap.entrySet()) { Quotas quotas = quotasFromData(entry.getValue()); if (Bytes.startsWith(entry.getKey(), QUOTA_QUALIFIER_SETTINGS_PREFIX)) { String name = Bytes.toString(entry.getKey(), QUOTA_QUALIFIER_SETTINGS_PREFIX.length); if (name.charAt(name.length() - 1) == TableName.NAMESPACE_DELIM) { String namespace = name.substring(0, name.length() - 1); visitor.visitUserQuotas(userName, namespace, quotas); } else { TableName table = TableName.valueOf(name); visitor.visitUserQuotas(userName, table, quotas); } } else if (Bytes.equals(entry.getKey(), QUOTA_QUALIFIER_SETTINGS)) { visitor.visitUserQuotas(userName, quotas); } } }
private void initTxids() { HBaseProjectionCriteria criteria = new HBaseProjectionCriteria(); criteria.addColumnFamily(columnFamily); Get get = hbaseClient.constructGetRequests(txidNamespace, criteria); try { Result[] results = hbaseClient.batchGet(Collections.singletonList(get)); Result result = results[0]; if (!result.isEmpty()) { NavigableMap<byte[], byte[]> familyMap = result.getFamilyMap(columnFamily); txIds = new TreeMap<>(familyMap); } else { txIds = new TreeMap<>(UnsignedBytes.lexicographicalComparator()); } LOG.debug("initTxids, txIds {}", txIds); } catch (Exception e) { throw new RuntimeException(e); } }
private void initPendingCommit() { HBaseProjectionCriteria criteria = new HBaseProjectionCriteria(); criteria.addColumnFamily(columnFamily); Get get = hbaseClient.constructGetRequests(prepareNamespace, criteria); try { Result[] results = hbaseClient.batchGet(Collections.singletonList(get)); Result result = results[0]; if (!result.isEmpty()) { LOG.debug("Loading previously prepared commit from {}", prepareNamespace); NavigableMap<byte[], byte[]> familyMap = result.getFamilyMap(columnFamily); pendingCommit = Maps.unmodifiableNavigableMap(familyMap); } else { LOG.debug("No previously prepared commits."); pendingCommit = EMPTY_PENDING_COMMIT_MAP; } } catch (Exception e) { throw new RuntimeException(e); } }
@Override public String[] getRow(Array<String> key) { byte[] encodedKey = encoder.encodeRowKey(key.data); Get get = new Get(encodedKey); try { Result result = table.get(get); if (result.isEmpty()) { return null; } return encoder.decode(new HBaseRow(result.getRow(), result.getFamilyMap(HBaseLookupRowEncoder.CF))); } catch (IOException e) { throw new RuntimeException("error when get row from hBase", e); } }
void verifyEdit(int familyNum, int putNum, Table table) throws IOException { Result r = table.get(createGet(familyNum, putNum)); byte[] family = FAMILIES[familyNum - 1]; byte[] qf = Bytes.toBytes("q" + familyNum); byte[] val = Bytes.toBytes("val" + familyNum + "-" + putNum); assertNotNull(("Missing Put#" + putNum + " for CF# " + familyNum), r.getFamilyMap(family)); assertNotNull(("Missing Put#" + putNum + " for CF# " + familyNum), r.getFamilyMap(family).get(qf)); assertTrue(("Incorrect value for Put#" + putNum + " for CF# " + familyNum), Arrays.equals(r.getFamilyMap(family).get(qf), val)); }
void verifyEdit(int familyNum, int putNum, Table table) throws IOException { Result r = table.get(createGet(familyNum, putNum)); byte[] family = FAMILIES[familyNum - 1]; byte[] qf = Bytes.toBytes("q" + familyNum); byte[] val = Bytes.toBytes("val" + familyNum + "-" + putNum); assertNotNull(("Missing Put#" + putNum + " for CF# " + familyNum), r.getFamilyMap(family)); assertNotNull(("Missing Put#" + putNum + " for CF# " + familyNum), r.getFamilyMap(family).get(qf)); assertTrue(("Incorrect value for Put#" + putNum + " for CF# " + familyNum), Arrays.equals(r.getFamilyMap(family).get(qf), val)); }
@Override protected List<String> extractAuths(String user, List<Result> results) { List<String> auths = new ArrayList<>(); for (Result result : results) { if (Bytes.equals(result.getRow(), Bytes.toBytes(user))) { NavigableMap<byte[], byte[]> familyMap = result.getFamilyMap(LABELS_TABLE_FAMILY); for (byte[] q : familyMap.keySet()) { auths.add(Bytes.toString(q, 0, q.length)); } } } return auths; } }
static private void removeTablePermissions(TableName tableName, byte[] column, Table table, boolean closeTable) throws IOException { Scan scan = new Scan(); scan.addFamily(ACL_LIST_FAMILY); String columnName = Bytes.toString(column); scan.setFilter(new QualifierFilter(CompareOperator.EQUAL, new RegexStringComparator( String.format("(%s%s%s)|(%s%s)$", ACL_KEY_DELIMITER, columnName, ACL_KEY_DELIMITER, ACL_KEY_DELIMITER, columnName)))); Set<byte[]> qualifierSet = new TreeSet<>(Bytes.BYTES_COMPARATOR); ResultScanner scanner = null; try { scanner = table.getScanner(scan); for (Result res : scanner) { for (byte[] q : res.getFamilyMap(ACL_LIST_FAMILY).navigableKeySet()) { qualifierSet.add(q); } } if (qualifierSet.size() > 0) { Delete d = new Delete(tableName.getName()); for (byte[] qualifier : qualifierSet) { d.addColumns(ACL_LIST_FAMILY, qualifier); } table.delete(d); } } finally { if (scanner != null) scanner.close(); if (closeTable) table.close(); } }
/** * Verify that the result and key have expected values. * * @param r * @param key * @param expectedKey * @param expectedValue * @return */ static boolean checkResult(Result r, ImmutableBytesWritable key, byte[] expectedKey, byte[] expectedValue) { assertEquals(0, key.compareTo(expectedKey)); Map<byte[], byte[]> vals = r.getFamilyMap(FAMILY); byte[] value = vals.values().iterator().next(); assertTrue(Arrays.equals(value, expectedValue)); return true; // if succeed }
/** * Verify that the result and key have expected values. * * @param r * @param key * @param expectedKey * @param expectedValue * @return */ static boolean checkResult(Result r, ImmutableBytesWritable key, byte[] expectedKey, byte[] expectedValue) { assertEquals(0, key.compareTo(expectedKey)); Map<byte[], byte[]> vals = r.getFamilyMap(FAMILY); byte[] value = vals.values().iterator().next(); assertTrue(Arrays.equals(value, expectedValue)); return true; // if succeed }
@Override protected void map(ImmutableBytesWritable key, Result value, Context context) throws IOException, InterruptedException { long longRk = Bytes.toLong(value.getRow()); for (Map.Entry<byte[], byte[]> entry : value.getFamilyMap(CHAIN_FAM).entrySet()) { long chainId = Bytes.toLong(entry.getKey()); long next = Bytes.toLong(entry.getValue()); Cell c = value.getColumnCells(SORT_FAM, entry.getKey()).get(0); long order = Bytes.toLong(CellUtil.cloneValue(c)); context.write(new LinkKey(chainId, order), new LinkChain(longRk, next)); } } }
NavigableMap<byte [], byte []> familyMap = result.getFamilyMap(columnFamilyBytes);
cols += result.getFamilyMap(cf).size();
@Test public void test() throws IOException { try (Table t = UTIL.getConnection().getTable(NAME)) { writeData(t); Scan s = new Scan(); s.addColumn(FAMILY, EXPLICIT_QUAL); try (ResultScanner scanner = t.getScanner(s)) { for (int i = 0; i < NUM_ROWS; i++) { Result result = scanner.next(); assertNotNull("The " + (i + 1) + "th result was unexpectedly null", result); assertEquals(2, result.getFamilyMap(FAMILY).size()); assertArrayEquals(Bytes.toBytes(i + 1), result.getRow()); assertArrayEquals(EXPLICIT_VAL, result.getValue(FAMILY, EXPLICIT_QUAL)); assertArrayEquals(IMPLICIT_VAL, result.getValue(FAMILY, IMPLICIT_QUAL)); } assertNull(scanner.next()); } } } }
@Test public void test() throws IOException, InterruptedException { try (Table t = UTIL.getConnection().getTable(NAME)) { writeData(t); // Flush the data UTIL.flush(NAME); // Issue a compaction UTIL.compact(NAME, true); Scan s = new Scan(); s.addColumn(FAMILY, QUALIFIER); try (ResultScanner scanner = t.getScanner(s)) { for (int i = 0; i < NUM_ROWS; i++) { Result result = scanner.next(); assertNotNull("The " + (i + 1) + "th result was unexpectedly null", result); assertEquals(1, result.getFamilyMap(FAMILY).size()); assertArrayEquals(Bytes.toBytes(i + 1), result.getRow()); assertArrayEquals(Bytes.toBytes(replacedValue), result.getValue(FAMILY, QUALIFIER)); } assertNull(scanner.next()); } } } }
result != null ? result.getFamilyMap(cf) : null; if (columnValues == null) { int specialPermCellInsertionFactor = Integer.parseInt(dataGenerator.getArgs()[2]);
+ Bytes.toStringBinary(result.getRow()) + " => " + Bytes.toStringBinary(result.getFamilyMap(HConstants.CATALOG_FAMILY) .get(HConstants.SERVER_QUALIFIER)));
Result res = scanner.next(); assertNotNull(res); assertEquals(refSFCount, res.getFamilyMap(familyNameBytes).size());