blob: a759b5de512a4272fa39b23a746d1b22d49fb6be [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>RoundRobinTableInputFormat (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="RoundRobinTableInputFormat (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":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/RoundRobinTableInputFormat.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><a href="../../../../../org/apache/hadoop/hbase/mapreduce/ResultSerialization.ResultSerializer.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html" target="_top">Frames</a></li>
<li><a href="RoundRobinTableInputFormat.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>Nested&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.mapreduce</div>
<h2 title="Class RoundRobinTableInputFormat" class="title">Class RoundRobinTableInputFormat</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.mapreduce.InputFormat&lt;<a href="../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html" title="class in org.apache.hadoop.hbase.mapreduce">org.apache.hadoop.hbase.mapreduce.TableInputFormatBase</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">org.apache.hadoop.hbase.mapreduce.TableInputFormat</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.mapreduce.RoundRobinTableInputFormat</li>
</ul>
</li>
</ul>
</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</dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Public
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.49">RoundRobinTableInputFormat</a>
extends <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">TableInputFormat</a></pre>
<div class="block">Process the return from super-class <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce"><code>TableInputFormat</code></a> (TIF) so as to undo any clumping of
<code>InputSplit</code>s around RegionServers. Spread splits broadly to distribute read-load over
RegionServers in the cluster. The super-class TIF returns splits in hbase:meta table order.
Adjacent or near-adjacent hbase:meta Regions can be hosted on the same RegionServer -- nothing
prevents this. This hbase:maeta ordering of InputSplit placement can be lumpy making it so some
RegionServers end up hosting lots of InputSplit scans while contemporaneously other RegionServers
host few or none. This class does a pass over the return from the super-class to better spread
the load. See the below helpful Flipkart blog post for a description and from where the base of
this code comes from (with permission).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>https://tech.flipkart.com/is-data-locality-always-out-of-the-box-in-hadoop-not-really-2ae9c95163cb</code></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== 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>(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/mapreduce/RoundRobinTableInputFormat.html#HBASE_REGIONSIZECALCULATOR_ENABLE">HBASE_REGIONSIZECALCULATOR_ENABLE</a></span></code>
<div class="block">Boolean config for whether superclass should produce InputSplits with 'lengths'.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#hbaseRegionsizecalculatorEnableOriginalValue">hbaseRegionsizecalculatorEnableOriginalValue</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.mapreduce.TableInputFormat">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">TableInputFormat</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#INPUT_TABLE">INPUT_TABLE</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN">SCAN</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_BATCHSIZE">SCAN_BATCHSIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_CACHEBLOCKS">SCAN_CACHEBLOCKS</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_CACHEDROWS">SCAN_CACHEDROWS</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_COLUMN_FAMILY">SCAN_COLUMN_FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_COLUMNS">SCAN_COLUMNS</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_MAXVERSIONS">SCAN_MAXVERSIONS</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_ROW_START">SCAN_ROW_START</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_ROW_STOP">SCAN_ROW_STOP</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_TIMERANGE_END">SCAN_TIMERANGE_END</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_TIMERANGE_START">SCAN_TIMERANGE_START</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_TIMESTAMP">SCAN_TIMESTAMP</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SHUFFLE_MAPS">SHUFFLE_MAPS</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.mapreduce.TableInputFormatBase">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html" title="class in org.apache.hadoop.hbase.mapreduce">TableInputFormatBase</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#MAPREDUCE_INPUT_AUTOBALANCE">MAPREDUCE_INPUT_AUTOBALANCE</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#MAX_AVERAGE_REGION_SIZE">MAX_AVERAGE_REGION_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#NUM_MAPPERS_PER_REGION">NUM_MAPPERS_PER_REGION</a></code></li>
</ul>
</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/mapreduce/RoundRobinTableInputFormat.html#RoundRobinTableInputFormat--">RoundRobinTableInputFormat</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) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#configure--">configure</a></span>()</code>
<div class="block">Adds a configuration to the Context disabling remote rpc'ing to figure Region size
when calculating InputSplits.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.mapreduce.InputSplit&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#getSplits-org.apache.hadoop.mapreduce.JobContext-">getSplits</a></span>(org.apache.hadoop.mapreduce.JobContext&nbsp;context)</code>
<div class="block">Calculates the splits that will serve as input for the map tasks.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.mapreduce.InputSplit&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#getSuperSplits-org.apache.hadoop.mapreduce.JobContext-">getSuperSplits</a></span>(org.apache.hadoop.mapreduce.JobContext&nbsp;context)</code>
<div class="block">Call super-classes' getSplits.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.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>
<div class="block">Pass table name as argument.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.mapreduce.InputSplit&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#roundRobin-java.util.List-">roundRobin</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.mapreduce.InputSplit&gt;&nbsp;inputs)</code>
<div class="block">Spread the splits list so as to avoid clumping on RegionServers.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#unconfigure--">unconfigure</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.mapreduce.TableInputFormat">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">TableInputFormat</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#addColumns-org.apache.hadoop.hbase.client.Scan-byte:A:A-">addColumns</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#configureSplitTable-org.apache.hadoop.mapreduce.Job-org.apache.hadoop.hbase.TableName-">configureSplitTable</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#createScanFromConfiguration-org.apache.hadoop.conf.Configuration-">createScanFromConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#getConf--">getConf</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#getStartEndKeys--">getStartEndKeys</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#initialize-org.apache.hadoop.mapreduce.JobContext-">initialize</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.mapreduce.TableInputFormatBase">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html" title="class in org.apache.hadoop.hbase.mapreduce">TableInputFormatBase</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#calculateAutoBalancedSplits-java.util.List-long-">calculateAutoBalancedSplits</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#closeTable--">closeTable</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#createNInputSplitsUniform-org.apache.hadoop.mapreduce.InputSplit-int-">createNInputSplitsUniform</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#createRecordReader-org.apache.hadoop.mapreduce.InputSplit-org.apache.hadoop.mapreduce.TaskAttemptContext-">createRecordReader</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#createRegionSizeCalculator-org.apache.hadoop.hbase.client.RegionLocator-org.apache.hadoop.hbase.client.Admin-">createRegionSizeCalculator</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#getAdmin--">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#getRegionLocator--">getRegionLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#getScan--">getScan</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#getTable--">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#includeRegionInSplit-byte:A-byte:A-">includeRegionInSplit</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#initializeTable-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.TableName-">initializeTable</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#reverseDNS-java.net.InetAddress-">reverseDNS</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a>, <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#setTableRecordReader-org.apache.hadoop.hbase.mapreduce.TableRecordReader-">setTableRecordReader</a></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>
</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="hbaseRegionsizecalculatorEnableOriginalValue">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hbaseRegionsizecalculatorEnableOriginalValue</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.50">hbaseRegionsizecalculatorEnableOriginalValue</a></pre>
</li>
</ul>
<a name="HBASE_REGIONSIZECALCULATOR_ENABLE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HBASE_REGIONSIZECALCULATOR_ENABLE</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> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.59">HBASE_REGIONSIZECALCULATOR_ENABLE</a></pre>
<div class="block">Boolean config for whether superclass should produce InputSplits with 'lengths'. If true, TIF
will query every RegionServer to get the 'size' of all involved Regions and this 'size' will
be used the the InputSplit length. If false, we skip this query and the super-classes
returned InputSplits will have lenghths of zero. This override will set the flag to false.
All returned lengths will be zero. Makes it so sorting on 'length' becomes a noop. The sort
returned by this override will prevail. Thats what we want.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="RoundRobinTableInputFormat--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RoundRobinTableInputFormat</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.49">RoundRobinTableInputFormat</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="getSplits-org.apache.hadoop.mapreduce.JobContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSplits</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.mapreduce.InputSplit&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.62">getSplits</a>(org.apache.hadoop.mapreduce.JobContext&nbsp;context)
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></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#getSplits-org.apache.hadoop.mapreduce.JobContext-">TableInputFormat</a></code></span></div>
<div class="block">Calculates the splits that will serve as input for the map tasks. The
number of splits matches the number of regions in a table. Splits are shuffled if
required.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#getSplits-org.apache.hadoop.mapreduce.JobContext-">getSplits</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">TableInputFormat</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The current job context.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The list of input splits.</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> - When creating the list of splits fails.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>InputFormat.getSplits(
org.apache.hadoop.mapreduce.JobContext)</code></dd>
</dl>
</li>
</ul>
<a name="getSuperSplits-org.apache.hadoop.mapreduce.JobContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSuperSplits</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.mapreduce.InputSplit&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.75">getSuperSplits</a>(org.apache.hadoop.mapreduce.JobContext&nbsp;context)
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></pre>
<div class="block">Call super-classes' getSplits. Have it out here as its own method so can be overridden.</div>
<dl>
<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>
</dl>
</li>
</ul>
<a name="roundRobin-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>roundRobin</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.mapreduce.InputSplit&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.84">roundRobin</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.mapreduce.InputSplit&gt;&nbsp;inputs)
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></pre>
<div class="block">Spread the splits list so as to avoid clumping on RegionServers. Order splits so every server
gets one split before a server gets a second, and so on; i.e. round-robin the splits amongst
the servers in the cluster.</div>
<dl>
<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>
</dl>
</li>
</ul>
<a name="configure--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.135">configure</a>()</pre>
<div class="block">Adds a configuration to the Context disabling remote rpc'ing to figure Region size
when calculating InputSplits. See up in super-class TIF where we rpc to every server to find
the size of all involved Regions. Here we disable this super-class action. This means
InputSplits will have a length of zero. If all InputSplits have zero-length InputSplits, the
ordering done in here will 'pass-through' Hadoop's length-first sort. The superclass TIF will
ask every node for the current size of each of the participating Table Regions. It does this
because it wants to schedule the biggest Regions first (This fixation comes of hadoop itself
-- see JobSubmitter where it sorts inputs by size). This extra diligence takes time and is of
no utility in this RRTIF where spread is of more import than size-first. Also, if a rolling
restart is happening when we go to launch the job, the job launch may fail because the request
for Region size fails -- even after retries -- because rolled RegionServer may take a while to
come online: e.g. it takes java 90 seconds to allocate a 160G. RegionServer is offline during
this time. The job launch will fail with 'Connection rejected'. So, we set
'hbase.regionsizecalculator.enable' to false here in RRTIF.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#unconfigure--"><code>unconfigure()</code></a></dd>
</dl>
</li>
</ul>
<a name="unconfigure--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unconfigure</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.146">unconfigure</a>()</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#configure--"><code>configure()</code></a></dd>
</dl>
</li>
</ul>
<a name="main-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html#line.159">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/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Pass table name as argument. Set the zk ensemble to use with the System property
'hbase.zookeeper.quorum'</div>
<dl>
<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>
</dl>
</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/RoundRobinTableInputFormat.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><a href="../../../../../org/apache/hadoop/hbase/mapreduce/ResultSerialization.ResultSerializer.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/mapreduce/RoundRobinTableInputFormat.html" target="_top">Frames</a></li>
<li><a href="RoundRobinTableInputFormat.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>Nested&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>