continue; if (ServerColumnFamily.TIME_COLUMN.hasColumns(entry.getKey())) { if (time == null) { time = value.toString(); FileRef ref = new FileRef(fs, key); dataFiles.put(ref, new DataFileValue(entry.getValue().get())); } else if (DIRECTORY_COLUMN.hasColumns(key)) { directory = value.toString(); } else if (family.equals(LogColumnFamily.NAME)) { } else if (family.equals(ScanFileColumnFamily.NAME)) { scanFiles.add(new FileRef(fs, key)); } else if (FLUSH_COLUMN.hasColumns(key)) { flushID = Long.parseLong(value.toString()); } else if (COMPACT_COLUMN.hasColumns(key)) { compactID = Long.parseLong(entry.getValue().toString()); } else if (family.equals(LastLocationColumnFamily.NAME)) { } else if (PREV_ROW_COLUMN.hasColumns(key)) { KeyExtent check = new KeyExtent(key.getRow(), value); if (!check.equals(extent)) {
new TServerInstance(entry.getValue(), key.getColumnQualifier())); return null; } else if (TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(key)) { prevEndRow = entry.getValue(); } else if (TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.hasColumns(key)) { dir = entry.getValue(); } else if (TabletsSection.ServerColumnFamily.TIME_COLUMN.hasColumns(key)) { time = entry.getValue();
getLogURIs(volumes, le); } else if (MetadataSchema.TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN .hasColumns(entry.getKey())) { volumes.add(getTableURI(entry.getValue().toString()));
if (TabletsSection.TabletColumnFamily.OLD_PREV_ROW_COLUMN.hasColumns(entry.getKey())) { oldPrevEndRow = entry.getValue();
for (Iterator<Entry<Key,Value>> iterator = scanner.iterator(); iterator.hasNext();) { final Entry<Key,Value> next = iterator.next(); if (TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(next.getKey())) { KeyExtent extent = new KeyExtent(next.getKey().getRow(), next.getValue()); final String pr = encode(encode, extent.getPrevEndRow());
&& TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(key)) { mbw.addMutation(m); break; // its the last column in the last row
if (MetadataSchema.TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(key)) { extent = new KeyExtent(key.getRow(), entry.getValue());
m.put(key.getColumnFamily(), key.getColumnQualifier(), value); fileCount++; } else if (TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(key) && firstPrevRowValue == null) { Master.log.debug("prevRow entry for lowest tablet is {}", value); firstPrevRowValue = new Value(value); } else if (TabletsSection.ServerColumnFamily.TIME_COLUMN.hasColumns(key)) { maxLogicalTime = TabletTime.maxMetadataTime(maxLogicalTime, value.toString()); } else if (TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.hasColumns(key)) { bw.addMutation(MetadataTableUtil.createDeleteMutation(master.getContext(), range.getTableId(), entry.getValue().toString())); TabletsSection.ServerColumnFamily.TIME_COLUMN.fetch(scanner); for (Entry<Key,Value> entry : scanner) { if (TabletsSection.ServerColumnFamily.TIME_COLUMN.hasColumns(entry.getKey())) { maxLogicalTime = TabletTime.maxMetadataTime(maxLogicalTime, entry.getValue().toString());
datafiles.clear(); } else if (TabletsSection.ServerColumnFamily.TIME_COLUMN.hasColumns(key)) { timeType = entry.getValue().toString().charAt(0); } else if (key.compareColumnFamily(TabletsSection.CurrentLocationColumnFamily.NAME) == 0) { throw new IllegalStateException( "Tablet " + key.getRow() + " is assigned during a merge!"); } else if (TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.hasColumns(key)) {
if (TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.hasColumns(key)) { bw.addMutation(createDeleteMutation(context, tableId, cell.getValue().toString()));
@Override public Map<Key,Value> next() { if (!hasNext()) throw new NoSuchElementException(); Map<Key,Value> tmp = currentTabletKeys; currentTabletKeys = null; Set<Entry<Key,Value>> es = tmp.entrySet(); Iterator<Entry<Key,Value>> esIter = es.iterator(); while (esIter.hasNext()) { Map.Entry<Key,Value> entry = esIter.next(); if (!returnPrevEndRow && Constants.METADATA_PREV_ROW_COLUMN.hasColumns(entry.getKey())) { esIter.remove(); } if (!returnDir && Constants.METADATA_DIRECTORY_COLUMN.hasColumns(entry.getKey())) { esIter.remove(); } } return tmp; }
@Override public Map<Key,Value> next() { if (!hasNext()) throw new NoSuchElementException(); Map<Key,Value> tmp = currentTabletKeys; currentTabletKeys = null; Set<Entry<Key,Value>> es = tmp.entrySet(); Iterator<Entry<Key,Value>> esIter = es.iterator(); while (esIter.hasNext()) { Map.Entry<Key,Value> entry = esIter.next(); if (!returnPrevEndRow && TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(entry.getKey())) { esIter.remove(); } if (!returnDir && TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.hasColumns(entry.getKey())) { esIter.remove(); } } return tmp; }
private static String lookupTime(AccumuloConfiguration conf, KeyExtent extent, SortedMap<Key,Value> tabletsKeyValues) { SortedMap<Key,Value> entries; if (extent.isRootTablet()) { return null; } else { entries = new TreeMap<Key,Value>(); Text rowName = extent.getMetadataEntry(); for (Entry<Key,Value> entry : tabletsKeyValues.entrySet()) { if (entry.getKey().compareRow(rowName) == 0 && Constants.METADATA_TIME_COLUMN.hasColumns(entry.getKey())) { entries.put(new Key(entry.getKey()), new Value(entry.getValue())); } } } // log.debug("extent : "+extent+" entries : "+entries); if (entries.size() == 1) return entries.values().iterator().next().toString(); return null; }
if (TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(entry.getKey())) { sawPrevEndRow = true; break;
if (Constants.METADATA_PREV_ROW_COLUMN.hasColumns(entry.getKey())) { sawPrevEndRow = true; break;
private Size fetch() { long tabletSize = 0; while (iterator.hasNext()) { Entry<Key,Value> entry = iterator.next(); Key key = entry.getKey(); if (key.getColumnFamily().equals(DataFileColumnFamily.NAME)) { tabletSize += new DataFileValue(entry.getValue().get()).getSize(); } else if (TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(key)) { KeyExtent extent = new KeyExtent(key.getRow(), entry.getValue()); return new Size(extent, tabletSize); } } return null; }
@Override public Pair<KeyExtent,Location> apply(Iterator<Entry<Key,Value>> input) { Location loc = Location.NONE; KeyExtent extent = null; while (input.hasNext()) { Entry<Key,Value> entry = input.next(); if (entry.getKey().getColumnFamily() .equals(MetadataSchema.TabletsSection.CurrentLocationColumnFamily.NAME)) { loc = new Location( new TServerInstance(entry.getValue(), entry.getKey().getColumnQualifier())); } else if (MetadataSchema.TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN .hasColumns(entry.getKey())) { extent = new KeyExtent(entry.getKey().getRow(), entry.getValue()); } } return new Pair<>(extent, loc); }
private Pair<KeyExtent,String> getTabletFiles(Range nextRange, List<String> relFiles) throws TableNotFoundException { Scanner scanner = conn.createScanner(MetadataTable.NAME, Authorizations.EMPTY); scanner.setBatchSize(100); scanner.setRange(nextRange); RowIterator rowIter = new RowIterator(scanner); Iterator<Entry<Key,Value>> row = rowIter.next(); KeyExtent extent = null; String location = null; while (row.hasNext()) { Entry<Key,Value> entry = row.next(); Key key = entry.getKey(); if (key.getColumnFamily().equals(DataFileColumnFamily.NAME)) { relFiles.add(key.getColumnQualifier().toString()); } if (key.getColumnFamily().equals(TabletsSection.CurrentLocationColumnFamily.NAME) || key.getColumnFamily().equals(TabletsSection.FutureLocationColumnFamily.NAME)) { location = entry.getValue().toString(); } if (TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(key)) { extent = new KeyExtent(key.getRow(), entry.getValue()); } } return new Pair<>(extent, location); }
private Map<KeyExtent,List<String>> getRecoveryMarkers(Connector c) throws Exception { Map<KeyExtent,List<String>> result = new HashMap<>(); Scanner root = c.createScanner(RootTable.NAME, EMPTY); root.setRange(TabletsSection.getRange()); root.fetchColumnFamily(TabletsSection.LogColumnFamily.NAME); TabletColumnFamily.PREV_ROW_COLUMN.fetch(root); Scanner meta = c.createScanner(MetadataTable.NAME, EMPTY); meta.setRange(TabletsSection.getRange()); meta.fetchColumnFamily(TabletsSection.LogColumnFamily.NAME); TabletColumnFamily.PREV_ROW_COLUMN.fetch(meta); List<String> logs = new ArrayList<>(); Iterator<Entry<Key,Value>> both = Iterators.concat(root.iterator(), meta.iterator()); while (both.hasNext()) { Entry<Key,Value> entry = both.next(); Key key = entry.getKey(); if (key.getColumnFamily().equals(TabletsSection.LogColumnFamily.NAME)) { logs.add(key.getColumnQualifier().toString()); } if (TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(key) && !logs.isEmpty()) { KeyExtent extent = new KeyExtent(key.getRow(), entry.getValue()); result.put(extent, logs); logs = new ArrayList<>(); } } return result; }
for (Iterator<Entry<Key,Value>> iterator = scanner.iterator(); iterator.hasNext();) { final Entry<Key,Value> next = iterator.next(); if (TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(next.getKey())) { KeyExtent extent = new KeyExtent(next.getKey().getRow(), next.getValue()); final String pr = encode(encode, extent.getPrevEndRow());