/** * If hbase runs on new version of mapreduce, RecordReader has access to * counters thus can update counters based on scanMetrics. * If hbase runs on old version of mapreduce, it won't be able to get * access to counters and TableRecorderReader can't update counter values. * @throws IOException */ private void updateCounters() throws IOException { ScanMetrics scanMetrics = scanner.getScanMetrics(); if (scanMetrics == null) { return; } updateCounters(scanMetrics, numRestarts, getCounter, context, numStale); }
private void scan0(Scan scan, ScanResultConsumer consumer) { try (ResultScanner scanner = getScanner(scan)) { consumer.onScanMetricsCreated(scanner.getScanMetrics()); for (Result result; (result = scanner.next()) != null;) { if (!consumer.onNext(result)) { break; } } consumer.onComplete(); } catch (IOException e) { consumer.onError(e); } }
@Override void testTakedown() throws IOException { if (this.testScanner != null) { updateScanMetrics(this.testScanner.getScanMetrics()); this.testScanner.close(); } super.testTakedown(); }
private static Pair<List<Result>, ScanMetrics> doScanWithAsyncTableScanner(Scan scan) throws IOException { try (ResultScanner scanner = CONN.getTable(TABLE_NAME, ForkJoinPool.commonPool()).getScanner(scan)) { List<Result> results = new ArrayList<>(); for (Result result; (result = scanner.next()) != null;) { results.add(result); } return Pair.newPair(results, scanner.getScanMetrics()); } }
/** * Run the scan to completetion and check the metric against the specified value * @param scan * @param metricKey * @param expectedValue * @throws Exception */ public void testMetric(Scan scan, String metricKey, long expectedValue) throws Exception { assertTrue("Scan should be configured to record metrics", scan.isScanMetricsEnabled()); ResultScanner scanner = TABLE.getScanner(scan); // Iterate through all the results while (scanner.next() != null) { } scanner.close(); ScanMetrics metrics = scanner.getScanMetrics(); assertTrue("Metrics are null", metrics != null); assertTrue("Metric : " + metricKey + " does not exist", metrics.hasCounter(metricKey)); final long actualMetricValue = metrics.getCounter(metricKey).get(); assertEquals("Metric: " + metricKey + " Expected: " + expectedValue + " Actual: " + actualMetricValue, expectedValue, actualMetricValue); } }
updateScanMetrics(s.getScanMetrics()); s.close();
@Override boolean testRow(int i) throws IOException { byte[] value = generateData(this.rand, getValueLength(this.rand)); Scan scan = constructScan(value); ResultScanner scanner = null; try { scanner = this.table.getScanner(scan); for (Result r = null; (r = scanner.next()) != null;) { updateValueSize(r); } } finally { if (scanner != null) { updateScanMetrics(scanner.getScanMetrics()); scanner.close(); } } return true; }
updateScanMetrics(s.getScanMetrics()); s.close();
private void scan0(Scan scan, ScanResultConsumer consumer) { try (ResultScanner scanner = getScanner(scan)) { consumer.onScanMetricsCreated(scanner.getScanMetrics()); for (Result result; (result = scanner.next()) != null;) { if (!consumer.onNext(result)) { break; } } consumer.onComplete(); } catch (IOException e) { consumer.onError(e); } }
@Override public ScanMetrics getScanMetrics() { return scanner2.getScanMetrics(); }
/** * If hbase runs on new version of mapreduce, RecordReader has access to * counters thus can update counters based on scanMetrics. * If hbase runs on old version of mapreduce, it won't be able to get * access to counters and TableRecorderReader can't update counter values. * @throws IOException */ private void updateCounters() throws IOException { ScanMetrics scanMetrics = scanner.getScanMetrics(); if (scanMetrics == null) { return; } updateCounters(scanMetrics, numRestarts, getCounter, context, numStale); }
/** * If hbase runs on new version of mapreduce, RecordReader has access to * counters thus can update counters based on scanMetrics. * If hbase runs on old version of mapreduce, it won't be able to get * access to counters and TableRecorderReader can't update counter values. * @throws IOException */ private void updateCounters() throws IOException { ScanMetrics scanMetrics = scanner.getScanMetrics(); if (scanMetrics == null) { return; } updateCounters(scanMetrics, numRestarts, getCounter, context, numStale); }
private void scan0(Scan scan, ScanResultConsumer consumer) { try (ResultScanner scanner = getScanner(scan)) { consumer.onScanMetricsCreated(scanner.getScanMetrics()); for (Result result; (result = scanner.next()) != null;) { if (!consumer.onNext(result)) { break; } } consumer.onComplete(); } catch (IOException e) { consumer.onError(e); } }
private static Pair<List<Result>, ScanMetrics> doScanWithAsyncTableScanner(Scan scan) throws IOException { try (ResultScanner scanner = CONN.getTable(TABLE_NAME, ForkJoinPool.commonPool()).getScanner(scan)) { List<Result> results = new ArrayList<>(); for (Result result; (result = scanner.next()) != null;) { results.add(result); } return Pair.newPair(results, scanner.getScanMetrics()); } }
@Override void testTakedown() throws IOException { if (this.testScanner != null) { updateScanMetrics(this.testScanner.getScanMetrics()); this.testScanner.close(); } super.testTakedown(); }
private void getScanMetrics() { ScanMetrics scanMetrics = scanner.getScanMetrics(); Map<String, Long> scanMetricsMap = scanMetrics.getMetricsMap(); if(scanMetricsMap == null) {
updateScanMetrics(s.getScanMetrics()); s.close();
/** * Run the scan to completetion and check the metric against the specified value * @param scan * @param metricKey * @param expectedValue * @throws Exception */ public void testMetric(Scan scan, String metricKey, long expectedValue) throws Exception { assertTrue("Scan should be configured to record metrics", scan.isScanMetricsEnabled()); ResultScanner scanner = TABLE.getScanner(scan); // Iterate through all the results while (scanner.next() != null) { } scanner.close(); ScanMetrics metrics = scanner.getScanMetrics(); assertTrue("Metrics are null", metrics != null); assertTrue("Metric : " + metricKey + " does not exist", metrics.hasCounter(metricKey)); final long actualMetricValue = metrics.getCounter(metricKey).get(); assertEquals("Metric: " + metricKey + " Expected: " + expectedValue + " Actual: " + actualMetricValue, expectedValue, actualMetricValue); } }
@Override boolean testRow(int i) throws IOException { byte[] value = generateData(this.rand, getValueLength(this.rand)); Scan scan = constructScan(value); ResultScanner scanner = null; try { scanner = this.table.getScanner(scan); for (Result r = null; (r = scanner.next()) != null;) { updateValueSize(r); } } finally { if (scanner != null) { updateScanMetrics(scanner.getScanMetrics()); scanner.close(); } } return true; }
updateScanMetrics(s.getScanMetrics()); s.close();