Java Code Examples for org.apache.hadoop.hbase.Cell#getFamilyArray()
The following examples show how to use
org.apache.hadoop.hbase.Cell#getFamilyArray() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HalyardBulkDelete.java From Halyard with Apache License 2.0 | 6 votes |
@Override protected void map(ImmutableBytesWritable key, Result value, Context output) throws IOException, InterruptedException { for (Cell c : value.rawCells()) { Statement st = HalyardTableUtils.parseStatement(c, SVF); if ((subj == null || subj.equals(st.getSubject())) && (pred == null || pred.equals(st.getPredicate())) && (obj == null || obj.equals(st.getObject())) && (ctx == null || ctx.contains(st.getContext()))) { KeyValue kv = new KeyValue(c.getRowArray(), c.getRowOffset(), (int) c.getRowLength(), c.getFamilyArray(), c.getFamilyOffset(), (int) c.getFamilyLength(), c.getQualifierArray(), c.getQualifierOffset(), c.getQualifierLength(), c.getTimestamp(), KeyValue.Type.DeleteColumn, c.getValueArray(), c.getValueOffset(), c.getValueLength(), c.getTagsArray(), c.getTagsOffset(), c.getTagsLength()); output.write(new ImmutableBytesWritable(kv.getRowArray(), kv.getRowOffset(), kv.getRowLength()), kv); deleted++; } else { output.progress(); } if (total++ % 10000l == 0) { String msg = MessageFormat.format("{0} / {1} cells deleted", deleted, total); output.setStatus(msg); LOG.log(Level.INFO, msg); } } }
Example 2
Source File: MetaDataUtil.java From phoenix with Apache License 2.0 | 6 votes |
public static void mutatePutValue(Put somePut, byte[] family, byte[] qualifier, byte[] newValue) { NavigableMap<byte[], List<Cell>> familyCellMap = somePut.getFamilyCellMap(); List<Cell> cells = familyCellMap.get(family); List<Cell> newCells = Lists.newArrayList(); if (cells != null) { for (Cell cell : cells) { if (Bytes.compareTo(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength(), qualifier, 0, qualifier.length) == 0) { Cell replacementCell = new KeyValue(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(), cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength(), cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength(), cell.getTimestamp(), KeyValue.Type.codeToType(cell.getType().getCode()), newValue, 0, newValue.length); newCells.add(replacementCell); } else { newCells.add(cell); } } familyCellMap.put(family, newCells); } }
Example 3
Source File: CellUtils.java From phoenix-omid with Apache License 2.0 | 5 votes |
/** * Returns a new shadow cell created from a particular cell. * @param cell * the cell to reconstruct the shadow cell from. * @param shadowCellValue * the value for the new shadow cell created * @return the brand-new shadow cell */ public static Cell buildShadowCellFromCell(Cell cell, byte[] shadowCellValue) { byte[] shadowCellQualifier = addShadowCellSuffixPrefix(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength()); return new KeyValue( cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(), cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength(), shadowCellQualifier, 0, shadowCellQualifier.length, cell.getTimestamp(), KeyValue.Type.codeToType(cell.getTypeByte()), shadowCellValue, 0, shadowCellValue.length); }
Example 4
Source File: Mutation.java From hbase with Apache License 2.0 | 5 votes |
Mutation add(Cell cell) throws IOException { //Checking that the row of the kv is the same as the mutation // TODO: It is fraught with risk if user pass the wrong row. // Throwing the IllegalArgumentException is more suitable I'd say. if (!CellUtil.matchingRows(cell, this.row)) { throw new WrongRowIOException("The row in " + cell.toString() + " doesn't match the original one " + Bytes.toStringBinary(this.row)); } byte[] family; if (cell instanceof IndividualBytesFieldCell) { family = cell.getFamilyArray(); } else { family = CellUtil.cloneFamily(cell); } if (family == null || family.length == 0) { throw new IllegalArgumentException("Family cannot be null"); } if (cell instanceof ExtendedCell) { getCellList(family).add(cell); } else { getCellList(family).add(new CellWrapper(cell)); } return this; }
Example 5
Source File: LocalIndexStoreFileScanner.java From phoenix with Apache License 2.0 | 5 votes |
private Cell getChangedKey(Cell next, boolean changeBottomKeys) { // If it is a top store file change the StartKey with SplitKey in Key //and produce the new value corresponding to the change in key byte[] changedKey = getNewRowkeyByRegionStartKeyReplacedWithSplitKey(next, changeBottomKeys); KeyValue changedKv = new KeyValue(changedKey, 0, changedKey.length, next.getFamilyArray(), next.getFamilyOffset(), next.getFamilyLength(), next.getQualifierArray(), next.getQualifierOffset(), next.getQualifierLength(), next.getTimestamp(), Type.codeToType(next.getTypeByte()), next.getValueArray(), next.getValueOffset(), next.getValueLength(), next.getTagsArray(), next.getTagsOffset(), next.getTagsLength()); return changedKv; }
Example 6
Source File: TransactionVisibilityFilterBase.java From phoenix-omid with Apache License 2.0 | 4 votes |
private ImmutableBytesWritable createImmutableBytesWritable(Cell v) { return new ImmutableBytesWritable(v.getFamilyArray(), v.getFamilyOffset(),v.getFamilyLength()); }
Example 7
Source File: DefaultStatisticsCollector.java From phoenix with Apache License 2.0 | 4 votes |
/** * Update the current statistics based on the latest batch of key-values from the underlying scanner * * @param results * next batch of {@link KeyValue}s * @throws IOException */ @Override public void collectStatistics(final List<Cell> results) { // A guide posts depth of zero disables the collection of stats if (guidePostDepth == 0 || results.size() == 0) { return; } Map<ImmutableBytesPtr, Boolean> famMap = Maps.newHashMap(); boolean incrementRow = false; Cell c = results.get(0); ImmutableBytesWritable row = new ImmutableBytesWritable(c.getRowArray(), c.getRowOffset(), c.getRowLength()); /* * During compaction, it is possible that HBase will not return all the key values when * internalScanner.next() is called. So we need the below check to avoid counting a row more * than once. */ if (currentRow == null || !row.equals(currentRow)) { currentRow = row; incrementRow = true; } for (Cell cell : results) { maxTimeStamp = Math.max(maxTimeStamp, cell.getTimestamp()); Pair<Long, GuidePostsInfoBuilder> gps; if (cachedGuidePosts == null) { ImmutableBytesPtr cfKey = new ImmutableBytesPtr(cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength()); gps = guidePostsInfoWriterMap.get(cfKey); if (gps == null) { gps = new Pair<Long, GuidePostsInfoBuilder>(0l, new GuidePostsInfoBuilder()); guidePostsInfoWriterMap.put(cfKey, gps); } if (famMap.get(cfKey) == null) { famMap.put(cfKey, true); gps.getSecond().incrementRowCount(); } } else { gps = cachedGuidePosts; if (incrementRow) { cachedGuidePosts.getSecond().incrementRowCount(); incrementRow = false; } } int kvLength = KeyValueUtil.getSerializedSize(cell, true); long byteCount = gps.getFirst() + kvLength; gps.setFirst(byteCount); if (byteCount >= guidePostDepth) { if (gps.getSecond().addGuidePostOnCollection(row, byteCount, gps.getSecond().getRowCount())) { gps.setFirst(0l); gps.getSecond().resetRowCount(); } } } }
Example 8
Source File: MergingServerOp.java From geowave with Apache License 2.0 | 4 votes |
protected Cell mergeList(final List<Cell> cells) { synchronized (MUTEX) { Mergeable currentMergeable = null; final Cell firstCell = cells.get(0); for (final Cell cell : cells) { final Mergeable mergeable = getMergeable( cell, // TODO consider avoiding extra byte array // allocations (which would require // persistence utils to be able to use // bytebuffer instead of byte[]) CellUtil.cloneValue(cell)); if (mergeable != null) { if (currentMergeable == null) { currentMergeable = mergeable; } else { currentMergeable.merge(mergeable); } } } final byte[] valueBinary = getBinary(currentMergeable); // this is basically a lengthy verbose form of cloning // in-place (without allocating new byte arrays) and // simply replacing the value with the new mergeable // value return new KeyValue( firstCell.getRowArray(), firstCell.getRowOffset(), firstCell.getRowLength(), firstCell.getFamilyArray(), firstCell.getFamilyOffset(), firstCell.getFamilyLength(), firstCell.getQualifierArray(), firstCell.getQualifierOffset(), firstCell.getQualifierLength(), firstCell.getTimestamp(), Type.codeToType(firstCell.getTypeByte()), valueBinary, 0, valueBinary.length, firstCell.getTagsArray(), firstCell.getTagsOffset(), firstCell.getTagsLength()); } }