@Override public List<TRowResult> scannerGetList(int id,int nbRows) throws IllegalArgument, IOError { LOG.debug("scannerGetList: id=" + id); ResultScannerWrapper resultScannerWrapper = getScanner(id); if (null == resultScannerWrapper) { String message = "scanner ID is invalid"; LOG.warn(message); throw new IllegalArgument("scanner ID is invalid"); } Result [] results = null; try { results = resultScannerWrapper.getScanner().next(nbRows); if (null == results) { return new ArrayList<TRowResult>(); } } catch (IOException e) { LOG.warn(e.getMessage(), e); throw new IOError(Throwables.getStackTraceAsString(e)); } return ThriftUtilities.rowResultFromHBase(results, resultScannerWrapper.isColumnSorted()); }
/** * Check that checkAndPut fails if the cell does not exist, then put in the cell, then check that * the checkAndPut succeeds. * * @throws Exception */ public static void doTestCheckAndPut() throws Exception { ThriftServerRunner.HBaseHandler handler = new ThriftServerRunner.HBaseHandler(UTIL.getConfiguration(), UserProvider.instantiate(UTIL.getConfiguration())); handler.createTable(tableAname, getColumnDescriptors()); try { List<Mutation> mutations = new ArrayList<Mutation>(1); mutations.add(new Mutation(false, columnAname, valueAname, true)); Mutation putB = (new Mutation(false, columnBname, valueBname, true)); assertFalse(handler.checkAndPut(tableAname, rowAname, columnAname, valueAname, putB, null)); handler.mutateRow(tableAname, rowAname, mutations, null); assertTrue(handler.checkAndPut(tableAname, rowAname, columnAname, valueAname, putB, null)); TRowResult rowResult = handler.getRow(tableAname, rowAname, null).get(0); assertEquals(rowAname, rowResult.row); assertEquals(valueBname, rowResult.columns.get(columnBname).value); } finally { handler.disableTable(tableAname); handler.deleteTable(tableAname); } }
private void printRow(TRowResult rowResult) { // copy values into a TreeMap to get them in sorted order TreeMap<String, TCell> sorted = new TreeMap<String, TCell>(); for (Map.Entry<ByteBuffer, TCell> column : rowResult.columns.entrySet()) { sorted.put(utf8(column.getKey().array()), column.getValue()); } StringBuilder rowStr = new StringBuilder(); for (SortedMap.Entry<String, TCell> entry : sorted.entrySet()) { rowStr.append(entry.getKey()); rowStr.append(" => "); rowStr.append(utf8(entry.getValue().value.array())); rowStr.append("; "); } System.out.println("row: " + utf8(rowResult.row.array()) + ", cols: " + rowStr); }
private final void printRow(TRowResult rowResult) { // copy values into a TreeMap to get them in sorted order TreeMap<String, TCell> sorted = new TreeMap<String, TCell>(); for (Map.Entry<ByteBuffer, TCell> column : rowResult.columns.entrySet()) { sorted.put(utf8(column.getKey().array()), column.getValue()); } StringBuilder rowStr = new StringBuilder(); for (SortedMap.Entry<String, TCell> entry : sorted.entrySet()) { rowStr.append(entry.getKey()); rowStr.append(" => "); rowStr.append(utf8(entry.getValue().value.array())); rowStr.append("; "); } System.out.println("row: " + utf8(rowResult.row.array()) + ", cols: " + rowStr); }
@Override public List<TRowResult> scannerGetList(int id,int nbRows) throws IllegalArgument, IOError { LOG.debug("scannerGetList: id=" + id); ResultScannerWrapper resultScannerWrapper = getScanner(id); if (null == resultScannerWrapper) { String message = "scanner ID is invalid"; LOG.warn(message); throw new IllegalArgument("scanner ID is invalid"); } Result [] results = null; try { results = resultScannerWrapper.getScanner().next(nbRows); if (null == results) { return new ArrayList<TRowResult>(); } } catch (IOException e) { LOG.warn(e.getMessage(), e); throw new IOError(e.getMessage()); } return ThriftUtilities.rowResultFromHBase(results, resultScannerWrapper.isColumnSorted()); }
/** * 列印TRowResult * * @param result */ public static void printlnResult(TRowResult result) { StringBuilder buff = new StringBuilder(); Map<ByteBuffer, TCell> columns = result.getColumns(); int size = columns.size(); // buff.append(ByteHelper.toString(result.getRow()) + ", ");// rowKey int i = 0; for (Map.Entry<ByteBuffer, TCell> entry : columns.entrySet()) { buff.append(ByteBufferHelper.toString(entry.getKey())); buff.append("="); buff.append(ByteHelper.toString((entry.getValue().getValue()))); // if (i < size - 1) { buff.append(", "); } i++; } System.out.println(buff); }
/** * get 讀取所有column * * @throws Exception */ @Test // 483 at mills. // 492 at mills. // 495 at mills. public void get() throws Exception { String TABLE_NAME = "UIH_OverallItemInfo"; String rowKey = "1000|I200|A17P|AUDI15028071"; // Map<ByteBuffer, ByteBuffer> attributes = new LinkedHashMap<ByteBuffer, ByteBuffer>(); long beg = System.currentTimeMillis(); List<TRowResult> results = client.getRow( ByteBufferHelper.toByteBuffer(TABLE_NAME), ByteBufferHelper.toByteBuffer(rowKey), attributes);// 可以attributes=null long end = System.currentTimeMillis(); // System.out.println((end - beg) + " at mills."); printlnResult(results); }
/** * get 讀取特定column * * @throws Exception */ @Test // 301 at mills. // 303 at mills. // 302 at mills. public void getOneColumn() throws Exception { String TABLE_NAME = "UIH_OverallItemInfo"; String rowKey = "1000|I200|A17P|AUDI15028071"; String cloumn = "CommonInfo:SellerID"; // List<ByteBuffer> columns = new LinkedList<ByteBuffer>(); columns.add(ByteBufferHelper.toByteBuffer(cloumn)); // Map<ByteBuffer, ByteBuffer> attributes = new LinkedHashMap<ByteBuffer, ByteBuffer>(); long beg = System.currentTimeMillis(); List<TRowResult> results = client.getRowWithColumns( ByteBufferHelper.toByteBuffer(TABLE_NAME), ByteBufferHelper.toByteBuffer(rowKey), columns, attributes);// 可以attributes=null long end = System.currentTimeMillis(); // System.out.println((end - beg) + " at mills."); // printlnResult(results); }
@Override public List<TRowResult> scannerGetList(int id,int nbRows) throws IllegalArgument, IOError { LOG.debug("scannerGetList: id=" + id); ResultScannerWrapper resultScannerWrapper = getScanner(id); if (null == resultScannerWrapper) { String message = "scanner ID is invalid"; LOG.warn(message); throw new IllegalArgument("scanner ID is invalid"); } Result [] results = null; try { results = resultScannerWrapper.getScanner().next(nbRows); if (null == results) { return new ArrayList<>(); } } catch (IOException e) { LOG.warn(e.getMessage(), e); throw getIOError(e); } return ThriftUtilities.rowResultFromHBase(results, resultScannerWrapper.isColumnSorted()); }
/** * Check that checkAndPut fails if the cell does not exist, then put in the cell, then check that * the checkAndPut succeeds. */ public static void doTestCheckAndPut() throws Exception { ThriftServerRunner.HBaseHandler handler = new ThriftServerRunner.HBaseHandler(UTIL.getConfiguration(), UserProvider.instantiate(UTIL.getConfiguration())); handler.createTable(tableAname, getColumnDescriptors()); try { List<Mutation> mutations = new ArrayList<>(1); mutations.add(new Mutation(false, columnAname, valueAname, true)); Mutation putB = (new Mutation(false, columnBname, valueBname, true)); assertFalse(handler.checkAndPut(tableAname, rowAname, columnAname, valueAname, putB, null)); handler.mutateRow(tableAname, rowAname, mutations, null); assertTrue(handler.checkAndPut(tableAname, rowAname, columnAname, valueAname, putB, null)); TRowResult rowResult = handler.getRow(tableAname, rowAname, null).get(0); assertEquals(rowAname, rowResult.row); assertEquals(valueBname, rowResult.columns.get(columnBname).value); } finally { handler.disableTable(tableAname); handler.deleteTable(tableAname); } }
private void testExceptionType(Hbase.Iface handler, ThriftMetrics metrics, ByteBuffer tTableName, String rowkey, ErrorThrowingGetObserver.ErrorType errorType) throws Exception { long preGetCounter = metricsHelper.getCounter("getRow_num_ops", metrics.getSource()); String exceptionKey = errorType.getMetricName(); long preExceptionCounter = metricsHelper.checkCounterExists(exceptionKey, metrics.getSource()) ? metricsHelper.getCounter(exceptionKey, metrics.getSource()) : 0; Map<ByteBuffer, ByteBuffer> attributes = new HashMap<>(); attributes.put(asByteBuffer(ErrorThrowingGetObserver.SHOULD_ERROR_ATTRIBUTE), asByteBuffer(errorType.name())); try { List<TRowResult> tRowResult = handler.getRow(tTableName, asByteBuffer(rowkey), attributes); fail("Get with error attribute should have thrown an exception"); } catch (IOError e) { LOG.info("Received exception: ", e); metricsHelper.assertCounter("getRow_num_ops", preGetCounter + 1, metrics.getSource()); metricsHelper.assertCounter(exceptionKey, preExceptionCounter + 1, metrics.getSource()); } }
private void printRow(TRowResult rowResult) { // copy values into a TreeMap to get them in sorted order TreeMap<String, TCell> sorted = new TreeMap<>(); for (Map.Entry<ByteBuffer, TCell> column : rowResult.columns.entrySet()) { sorted.put(utf8(column.getKey().array()), column.getValue()); } StringBuilder rowStr = new StringBuilder(); for (SortedMap.Entry<String, TCell> entry : sorted.entrySet()) { rowStr.append(entry.getKey()); rowStr.append(" => "); rowStr.append(utf8(entry.getValue().value.array())); rowStr.append("; "); } System.out.println("row: " + utf8(rowResult.row.array()) + ", cols: " + rowStr); }
@Override public List<TRowResult> scannerGetList(int id,int nbRows) throws IllegalArgument, IOError { LOG.debug("scannerGetList: id=" + id); ResultScanner scanner = getScanner(id); if (null == scanner) { throw new IllegalArgument("scanner ID is invalid"); } Result [] results = null; try { results = scanner.next(nbRows); if (null == results) { return new ArrayList<TRowResult>(); } } catch (IOException e) { throw new IOError(e.getMessage()); } return ThriftUtilities.rowResultFromHBase(results); }
/** * This utility method creates a list of Thrift TRowResult "struct" based on * an Hbase RowResult object. The empty list is returned if the input is * null. * * @param in * Hbase RowResult object * @return Thrift TRowResult array */ static public List<TRowResult> rowResultFromHBase(Result[] in) { List<TRowResult> results = new ArrayList<TRowResult>(); for ( Result result_ : in) { if(result_ == null || result_.isEmpty()) { continue; } TRowResult result = new TRowResult(); result.row = ByteBuffer.wrap(result_.getRow()); result.columns = new TreeMap<ByteBuffer, TCell>(); for(KeyValue kv : result_.raw()) { result.columns.put( ByteBuffer.wrap(KeyValue.makeColumn(kv.getFamily(), kv.getQualifier())), new TCell(ByteBuffer.wrap(kv.getValue()), kv.getTimestamp())); } results.add(result); } return results; }
/** * Check that checkAndPut fails if the cell does not exist, then put in the cell, then check that * the checkAndPut succeeds. * * @throws Exception */ public static void doTestCheckAndPut() throws Exception { ThriftServerRunner.HBaseHandler handler = new ThriftServerRunner.HBaseHandler(UTIL.getConfiguration()); handler.createTable(tableAname, getColumnDescriptors()); try { List<Mutation> mutations = new ArrayList<Mutation>(1); mutations.add(new Mutation(false, columnAname, valueAname, true)); Mutation putB = (new Mutation(false, columnBname, valueBname, true)); assertFalse(handler.checkAndPut(tableAname, rowAname, columnAname, valueAname, putB, null)); handler.mutateRow(tableAname, rowAname, mutations, null); assertTrue(handler.checkAndPut(tableAname, rowAname, columnAname, valueAname, putB, null)); TRowResult rowResult = handler.getRow(tableAname, rowAname, null).get(0); assertEquals(rowAname, rowResult.row); assertEquals(valueBname, rowResult.columns.get(columnBname).value); } finally { handler.disableTable(tableAname); handler.deleteTable(tableAname); } }
@Override public List<TRowResult> scannerGetList(int id,int nbRows) throws IllegalArgument, IOError { LOG.debug("scannerGetList: id=" + id); ResultScanner scanner = getScanner(id); if (null == scanner) { String message = "scanner ID is invalid"; LOG.warn(message); throw new IllegalArgument("scanner ID is invalid"); } Result [] results = null; try { results = scanner.next(nbRows); if (null == results) { return new ArrayList<TRowResult>(); } } catch (IOException e) { LOG.warn(e.getMessage(), e); throw new IOError(e.getMessage()); } return ThriftUtilities.rowResultFromHBase(results); }