public synchronized static Writer getMetadataTable(ClientContext context) { Credentials credentials = context.getCredentials(); Writer metadataTable = metadata_tables.get(credentials); if (metadataTable == null) { metadataTable = new Writer(context, MetadataTable.ID); metadata_tables.put(credentials, metadataTable); } return metadataTable; }
void removeFromMetadataTable(AccumuloServerContext context) throws Exception { Mutation m = new Mutation(new Text("~err_" + tableId)); m.putDelete(new Text(problemType.name()), new Text(resource)); MetadataTableUtil.getMetadataTable(context).update(m); }
updateServer(context, m, tabLoc.tablet_extent, parsedLocation); return; } catch (NotServingTabletException e) {
void removeFromMetadataTable() throws Exception { Mutation m = new Mutation(new Text("~err_" + tableName)); m.putDelete(new Text(problemType.name()), new Text(resource)); MetadataTable.getMetadataTable(SecurityConstants.getSystemCredentials()).update(m); }
public synchronized static Writer getRootTable(ClientContext context) { Credentials credentials = context.getCredentials(); Writer rootTable = root_tables.get(credentials); if (rootTable == null) { rootTable = new Writer(context, RootTable.ID); root_tables.put(credentials, rootTable); } return rootTable; }
public static void update(TCredentials credentials, ZooLock zooLock, Mutation m) { Writer t; t = getMetadataTable(credentials); if (zooLock != null) putLockID(zooLock, m); while (true) { try { t.update(m); return; } catch (AccumuloException e) { log.error(e, e); } catch (AccumuloSecurityException e) { log.error(e, e); } catch (ConstraintViolationException e) { log.error(e, e); // retrying when a CVE occurs is probably futile and can cause problems, see ACCUMULO-3096 throw new RuntimeException(e); } catch (TableNotFoundException e) { log.error(e, e); } UtilWaitThread.sleep(1000); } }
public synchronized static Writer getMetadataTable(TCredentials credentials) { Writer metadataTable = metadata_tables.get(credentials); if (metadataTable == null) { metadataTable = new Writer(HdfsZooInstance.getInstance(), credentials, Constants.METADATA_TABLE_ID); metadata_tables.put(credentials, metadataTable); } return metadataTable; }
void saveToMetadataTable(AccumuloServerContext context) throws Exception { Mutation m = new Mutation(new Text("~err_" + tableId)); m.put(new Text(problemType.name()), new Text(resource), new Value(encode())); MetadataTableUtil.getMetadataTable(context).update(m); }
synchronized static Writer getWriter(ClientContext context) { Writer replicationTable = writers.get(context.getCredentials()); if (replicationTable == null) { Connector conn; try { conn = context.getConnector(); } catch (AccumuloException | AccumuloSecurityException e) { throw new RuntimeException(e); } configureMetadataTable(conn, MetadataTable.NAME); replicationTable = new Writer(context, MetadataTable.ID); writers.put(context.getCredentials(), replicationTable); } return replicationTable; }
void saveToMetadataTable() throws Exception { Mutation m = new Mutation(new Text("~err_" + tableName)); m.put(new Text(problemType.name()), new Text(resource), new Value(encode())); MetadataTable.getMetadataTable(SecurityConstants.getSystemCredentials()).update(m); }
@Test(expected = ConstraintViolationException.class) public void test() throws Exception { getConnector().securityOperations().grantTablePermission(getAdminPrincipal(), MetadataTable.NAME, TablePermission.WRITE); Credentials credentials = new Credentials(getAdminPrincipal(), getAdminToken()); ClientContext context = new ClientContext(getConnector().getInstance(), credentials, cluster.getClientConfig()); Writer w = new Writer(context, MetadataTable.ID); KeyExtent extent = new KeyExtent("5", null, null); Mutation m = new Mutation(extent.getMetadataEntry()); // unknown columns should cause contraint violation m.put("badcolfam", "badcolqual", "3"); try { MetadataTableUtil.update(w, null, m); } catch (RuntimeException e) { if (e.getCause().getClass().equals(ConstraintViolationException.class)) { throw (ConstraintViolationException) e.getCause(); } } } }
public static void update(Writer t, ZooLock zooLock, Mutation m) { if (zooLock != null) putLockID(zooLock, m); while (true) { try { t.update(m); return; } catch (AccumuloException e) { log.error("{}", e.getMessage(), e); } catch (AccumuloSecurityException e) { log.error("{}", e.getMessage(), e); } catch (ConstraintViolationException e) { log.error("{}", e.getMessage(), e); // retrying when a CVE occurs is probably futile and can cause problems, see ACCUMULO-3096 throw new RuntimeException(e); } catch (TableNotFoundException e) { log.error("{}", e.getMessage(), e); } sleepUninterruptibly(1, TimeUnit.SECONDS); } }
/** * Write the given Mutation to the replication table. */ static void update(ClientContext context, Mutation m, KeyExtent extent) { Writer t = getWriter(context); while (true) { try { t.update(m); return; } catch (AccumuloException e) { log.error(e.toString(), e); } catch (AccumuloSecurityException e) { log.error(e.toString(), e); } catch (ConstraintViolationException e) { log.error(e.toString(), e); } catch (TableNotFoundException e) { log.error(e.toString(), e); } sleepUninterruptibly(1, TimeUnit.SECONDS); } }
public void deleteProblemReports(String table) throws Exception { if (isMeta(table)) { Iterator<ProblemReport> pri = iterator(table); while (pri.hasNext()) { pri.next().removeFromZooKeeper(); } return; } Connector connector = context.getConnector(); Scanner scanner = connector.createScanner(MetadataTable.NAME, Authorizations.EMPTY); scanner.addScanIterator(new IteratorSetting(1, "keys-only", SortedKeyIterator.class)); scanner.setRange(new Range(new Text("~err_" + table))); Mutation delMut = new Mutation(new Text("~err_" + table)); boolean hasProblems = false; for (Entry<Key,Value> entry : scanner) { hasProblems = true; delMut.putDelete(entry.getKey().getColumnFamily(), entry.getKey().getColumnQualifier()); } if (hasProblems) MetadataTableUtil.getMetadataTable(context).update(delMut); }
public void deleteProblemReports(String table) throws Exception { if (Constants.METADATA_TABLE_ID.equals(table)) { Iterator<ProblemReport> pri = iterator(table); while (pri.hasNext()) { pri.next().removeFromZooKeeper(); } return; } Connector connector = HdfsZooInstance.getInstance().getConnector(SecurityConstants.getSystemPrincipal(), SecurityConstants.getSystemToken()); Scanner scanner = connector.createScanner(Constants.METADATA_TABLE_NAME, Constants.NO_AUTHS); scanner.addScanIterator(new IteratorSetting(1, "keys-only", SortedKeyIterator.class)); if (table == null) { scanner.setRange(new Range(new Text("~err_"), false, new Text("~err`"), false)); } else { scanner.setRange(new Range(new Text("~err_" + table))); } Mutation delMut = new Mutation(new Text("~err_" + table)); boolean hasProblems = false; for (Entry<Key,Value> entry : scanner) { hasProblems = true; delMut.putDelete(entry.getKey().getColumnFamily(), entry.getKey().getColumnQualifier()); } if (hasProblems) MetadataTable.getMetadataTable(SecurityConstants.getSystemCredentials()).update(delMut); }
m.putDelete(k.getColumnFamily(), k.getColumnQualifier()); try { t.update(m); System.out.println("Deleted " + k); } catch (ConstraintViolationException e) {
Mutation m = new Mutation(assignment.tablet.getMetadataEntry()); assignment.server.putFutureLocation(m); writer.update(m);