blob: 9707c2f4ededab8a2d3d8fb817e26daaa03e85cd [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MobRefReporter (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="MobRefReporter (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":10,"i3":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MobRefReporter.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.MobRefMapper.html" title="class in org.apache.hadoop.hbase.mob.mapreduce"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html" target="_top">Frames</a></li>
<li><a href="MobRefReporter.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.mob.mapreduce</div>
<h2 title="Class MobRefReporter" class="title">Class MobRefReporter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.conf.Configured</li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.mob.mapreduce.MobRefReporter</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.apache.hadoop.conf.Configurable, org.apache.hadoop.util.Tool</dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.164">MobRefReporter</a>
extends org.apache.hadoop.conf.Configured
implements org.apache.hadoop.util.Tool</pre>
<div class="block">Scans a given table + CF for all mob reference cells to get the list of backing mob files.
For each referenced file we attempt to verify that said file is on the FileSystem in a place
that the MOB system will look when attempting to resolve the actual value.
The job includes counters that can help provide a rough sketch of the mob data.
<pre>
Map-Reduce Framework
Map input records=10000
...
Reduce output records=99
...
CELLS PER ROW
Number of rows with 1s of cells per row=10000
MOB
NUM_CELLS=52364
PROBLEM
Affected rows=338
Problem MOB files=2
ROWS WITH PROBLEMS PER FILE
Number of HFiles with 100s of affected rows=2
SIZES OF CELLS
Number of cells with size in the 10,000s of bytes=627
Number of cells with size in the 100,000s of bytes=51392
Number of cells with size in the 1,000,000s of bytes=345
SIZES OF ROWS
Number of rows with total size in the 100,000s of bytes=6838
Number of rows with total size in the 1,000,000s of bytes=3162
</pre>
* Map-Reduce Framework:Map input records - the number of rows with mob references
* Map-Reduce Framework:Reduce output records - the number of unique hfiles referenced
* MOB:NUM_CELLS - the total number of mob reference cells
* PROBLEM:Affected rows - the number of rows that reference hfiles with an issue
* PROBLEM:Problem MOB files - the number of unique hfiles that have an issue
* CELLS PER ROW: - this counter group gives a histogram of the order of magnitude of the
number of cells in a given row by grouping by the number of digits used in each count.
This allows us to see more about the distribution of cells than what we can determine
with just the cell count and the row count. In this particular example we can see that
all of our rows have somewhere between 1 - 9 cells.
* ROWS WITH PROBLEMS PER FILE: - this counter group gives a histogram of the order of
magnitude of the number of rows in each of the hfiles with a problem. e.g. in the
example there are 2 hfiles and they each have the same order of magnitude number of rows,
specifically between 100 and 999.
* SIZES OF CELLS: - this counter group gives a histogram of the order of magnitude of
the size of mob values according to our reference cells. e.g. in the example above we
have cell sizes that are all between 10,000 bytes and 9,999,999 bytes. From this
histogram we can also see that _most_ cells are 100,000 - 999,000 bytes and the smaller
and bigger ones are outliers making up less than 2% of mob cells.
* SIZES OF ROWS: - this counter group gives a histogram of the order of magnitude of the
size of mob values across each row according to our reference cells. In the example above
we have rows that are are between 100,000 bytes and 9,999,999 bytes. We can also see that
about 2/3rd of our rows are 100,000 - 999,999 bytes.
Generates a report that gives one file status per line, with tabs dividing fields.
<pre>
RESULT OF LOOKUP FILE REF comma seperated, base64 encoded rows when there's a problem
</pre>
e.g.
<pre>
MOB DIR 09c576e28a65ed2ead0004d192ffaa382019110184b30a1c7e034573bf8580aef8393402
MISSING FILE 28e252d7f013973174750d483d358fa020191101f73536e7133f4cd3ab1065edf588d509 MmJiMjMyYzBiMTNjNzc0OTY1ZWY4NTU4ZjBmYmQ2MTUtNTIz,MmEzOGE0YTkzMTZjNDllNWE4MzM1MTdjNDVkMzEwNzAtODg=
</pre>
Possible results are listed; the first three indicate things are working properly.
* MOB DIR - the reference is in the normal MOB area for the given table and CF
* HLINK TO ARCHIVE FOR SAME TABLE - the reference is present in the archive area for this
table and CF
* HLINK TO ARCHIVE FOR OTHER TABLE - the reference is present in a different table and CF,
either in the MOB or archive areas (e.g. from a snapshot restore or clone)
* ARCHIVE WITH HLINK BUT NOT FROM OUR TABLE - the reference is currently present in the archive
area for this table and CF, but it is kept there because a _different_ table has a
reference to it (e.g. from a snapshot clone). If these other tables are removed then
the file will likely be deleted unless there is a snapshot also referencing it.
* ARCHIVE BUT NO HLINKS - the reference is currently present in the archive for this table and
CF, but there are no references present to prevent its removal. Unless it is newer than
the general TTL (default 5 minutes) or referenced in a snapshot it will be subject to
cleaning.
* ARCHIVE BUT FAILURE WHILE CHECKING HLINKS - Check the job logs to see why things failed while
looking for why this file is being kept around.
* MISSING FILE - We couldn't find the reference on the FileSystem. Either there is dataloss due
to a bug in the MOB storage system or the MOB storage is damaged but in an edge case that
allows it to work for now. You can verify which by doing a raw reference scan to get the
referenced hfile and check the underlying filesystem. See the ref guide section on mob
for details.
* HLINK BUT POINT TO MISSING FILE - There is a pointer in our mob area for this table and CF
to a file elsewhere on the FileSystem, however the file it points to no longer exists.
* MISSING FILE BUT FAILURE WHILE CHECKING HLINKS - We could not find the referenced file,
however you should check the job logs to see why we couldn't check to see if there is a
pointer to the referenced file in our archive or another table's archive or mob area.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.MobRefMapper.html" title="class in org.apache.hadoop.hbase.mob.mapreduce">MobRefReporter.MobRefMapper</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.MobRefReducer.html" title="class in org.apache.hadoop.hbase.mob.mapreduce">MobRefReporter.MobRefReducer</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#NAME">NAME</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#REPORT_JOB_ID">REPORT_JOB_ID</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#REPORT_START_DATETIME">REPORT_START_DATETIME</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#MobRefReporter--">MobRefReporter</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#log10GroupedString-long-">log10GroupedString</a></span>(long&nbsp;number)</code>
<div class="block">Returns the string representation of the given number after grouping it
into log10 buckets.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#main-java.lang.String:A-">main</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#printUsage--">printUsage</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#run-java.lang.String:A-">run</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>
<div class="block">Main method for the tool.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.conf.Configured">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.conf.Configured</h3>
<code>getConf, setConf</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.conf.Configurable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.conf.Configurable</h3>
<code>getConf, setConf</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.165">LOG</a></pre>
</li>
</ul>
<a name="NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.166">NAME</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.mob.mapreduce.MobRefReporter.NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REPORT_JOB_ID">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REPORT_JOB_ID</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.167">REPORT_JOB_ID</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.mob.mapreduce.MobRefReporter.REPORT_JOB_ID">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REPORT_START_DATETIME">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>REPORT_START_DATETIME</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.168">REPORT_START_DATETIME</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.mob.mapreduce.MobRefReporter.REPORT_START_DATETIME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="MobRefReporter--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MobRefReporter</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.164">MobRefReporter</a>()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="log10GroupedString-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>log10GroupedString</h4>
<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.393">log10GroupedString</a>(long&nbsp;number)</pre>
<div class="block">Returns the string representation of the given number after grouping it
into log10 buckets. e.g. 0-9 -> 1, 10-99 -> 10, ..., 100,000-999,999 -> 100,000, etc.</div>
</li>
</ul>
<a name="run-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.402">run</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Main method for the tool.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>run</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.util.Tool</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>0 if success, 1 for bad args. 2 if job aborted with an exception,
3 if mr job was unsuccessful</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
</dl>
</li>
</ul>
<a name="main-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.493">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="printUsage--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>printUsage</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html#line.499">printUsage</a>()</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MobRefReporter.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.MobRefMapper.html" title="class in org.apache.hadoop.hbase.mob.mapreduce"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.html" target="_top">Frames</a></li>
<li><a href="MobRefReporter.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>