blob: 08efba276eb83c40e91af742d0e17fe68aa13181 [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 (1.8.0_201) on Thu Apr 11 20:05:13 EDT 2019 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AbstractHashSampler (Apache Accumulo Project 1.9.3 API)</title>
<meta name="date" content="2019-04-11">
<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="AbstractHashSampler (Apache Accumulo Project 1.9.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":6,"i2":10,"i3":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/AbstractHashSampler.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/accumulo/core/client/sample/RowColumnSampler.html" title="class in org.apache.accumulo.core.client.sample"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/accumulo/core/client/sample/AbstractHashSampler.html" target="_top">Frames</a></li>
<li><a href="AbstractHashSampler.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>Field&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>Field&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.accumulo.core.client.sample</div>
<h2 title="Class AbstractHashSampler" class="title">Class AbstractHashSampler</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.accumulo.core.client.sample.AbstractHashSampler</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/accumulo/core/client/sample/Sampler.html" title="interface in org.apache.accumulo.core.client.sample">Sampler</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../org/apache/accumulo/core/client/sample/RowColumnSampler.html" title="class in org.apache.accumulo.core.client.sample">RowColumnSampler</a>, <a href="../../../../../../org/apache/accumulo/core/client/sample/RowSampler.html" title="class in org.apache.accumulo.core.client.sample">RowSampler</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractHashSampler</span>
extends <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>
implements <a href="../../../../../../org/apache/accumulo/core/client/sample/Sampler.html" title="interface in org.apache.accumulo.core.client.sample">Sampler</a></pre>
<div class="block">A base class that can be used to create Samplers based on hashing. This class offers consistent
options for configuring the hash function. The subclass decides which parts of the key to hash.
<p>
This class support two options passed into <a href="../../../../../../org/apache/accumulo/core/client/sample/AbstractHashSampler.html#init-org.apache.accumulo.core.client.sample.SamplerConfiguration-"><code>init(SamplerConfiguration)</code></a>. One option is
<code>hasher</code> which specifies a hashing algorithm. Valid values for this option are <code>md5</code>,
<code>sha1</code>, and <code>murmur3_32</code>. If you are not sure, then choose <code>murmur3_32</code>.
<p>
The second option is <code>modulus</code> which can have any positive integer as a value.
<p>
Any data where <code>hash(data) % modulus == 0</code> will be selected for the sample.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.8.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/accumulo/core/client/sample/AbstractHashSampler.html#AbstractHashSampler--">AbstractHashSampler</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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/accumulo/core/client/sample/AbstractHashSampler.html#accept-org.apache.accumulo.core.data.Key-">accept</a></span>(<a href="../../../../../../org/apache/accumulo/core/data/Key.html" title="class in org.apache.accumulo.core.data">Key</a>&nbsp;k)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/accumulo/core/client/sample/AbstractHashSampler.html#hash-java.io.DataOutput-org.apache.accumulo.core.data.Key-">hash</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;hasher,
<a href="../../../../../../org/apache/accumulo/core/data/Key.html" title="class in org.apache.accumulo.core.data">Key</a>&nbsp;k)</code>
<div class="block">Subclass must override this method and hash some portion of the key.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/accumulo/core/client/sample/AbstractHashSampler.html#init-org.apache.accumulo.core.client.sample.SamplerConfiguration-">init</a></span>(<a href="../../../../../../org/apache/accumulo/core/client/sample/SamplerConfiguration.html" title="class in org.apache.accumulo.core.client.sample">SamplerConfiguration</a>&nbsp;config)</code>
<div class="block">Subclasses with options should override this method and call <code>super.init(config)</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/accumulo/core/client/sample/AbstractHashSampler.html#isValidOption-java.lang.String-">isValidOption</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;option)</code>
<div class="block">Subclasses with options should override this method and return true if the option is valid for
the subclass or if <code>super.isValidOption(opt)</code> returns true.</div>
</td>
</tr>
</table>
<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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractHashSampler--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractHashSampler</h4>
<pre>public&nbsp;AbstractHashSampler()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isValidOption-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidOption</h4>
<pre>protected&nbsp;boolean&nbsp;isValidOption(<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;option)</pre>
<div class="block">Subclasses with options should override this method and return true if the option is valid for
the subclass or if <code>super.isValidOption(opt)</code> returns true.</div>
</li>
</ul>
<a name="init-org.apache.accumulo.core.client.sample.SamplerConfiguration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>public&nbsp;void&nbsp;init(<a href="../../../../../../org/apache/accumulo/core/client/sample/SamplerConfiguration.html" title="class in org.apache.accumulo.core.client.sample">SamplerConfiguration</a>&nbsp;config)</pre>
<div class="block">Subclasses with options should override this method and call <code>super.init(config)</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/accumulo/core/client/sample/Sampler.html#init-org.apache.accumulo.core.client.sample.SamplerConfiguration-">init</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/accumulo/core/client/sample/Sampler.html" title="interface in org.apache.accumulo.core.client.sample">Sampler</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - Configuration options for a sampler.</dd>
</dl>
</li>
</ul>
<a name="hash-java.io.DataOutput-org.apache.accumulo.core.data.Key-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hash</h4>
<pre>protected abstract&nbsp;void&nbsp;hash(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;hasher,
<a href="../../../../../../org/apache/accumulo/core/data/Key.html" title="class in org.apache.accumulo.core.data">Key</a>&nbsp;k)
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">Subclass must override this method and hash some portion of the key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>hasher</code> - Data written to this will be used to compute the hash for the key.</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>
</dl>
</li>
</ul>
<a name="accept-org.apache.accumulo.core.data.Key-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>accept</h4>
<pre>public&nbsp;boolean&nbsp;accept(<a href="../../../../../../org/apache/accumulo/core/data/Key.html" title="class in org.apache.accumulo.core.data">Key</a>&nbsp;k)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/accumulo/core/client/sample/Sampler.html#accept-org.apache.accumulo.core.data.Key-">accept</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/accumulo/core/client/sample/Sampler.html" title="interface in org.apache.accumulo.core.client.sample">Sampler</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>k</code> - A key that was written to a rfile.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the key (and its associtated value) should be stored in the rfile's sample.
Return false if it should not be included.</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/AbstractHashSampler.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/accumulo/core/client/sample/RowColumnSampler.html" title="class in org.apache.accumulo.core.client.sample"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/accumulo/core/client/sample/AbstractHashSampler.html" target="_top">Frames</a></li>
<li><a href="AbstractHashSampler.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>Field&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>Field&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; 2011&#x2013;2019 <a href="https://www.apache.org">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>