blob: 4ece1569e5c0625cd431aed116f9f42afbbef0fa [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 -->
<title>KuduTableMapReduceUtil</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="KuduTableMapReduceUtil";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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="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/kudu/mapreduce/KuduTableInputFormat.html" title="class in org.apache.kudu.mapreduce"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kudu/mapreduce/KuduTableOutputCommitter.html" title="class in org.apache.kudu.mapreduce"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html" target="_top">Frames</a></li>
<li><a href="KuduTableMapReduceUtil.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>Constr&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>Constr&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.kudu.mapreduce</div>
<h2 title="Class KuduTableMapReduceUtil" class="title">Class KuduTableMapReduceUtil</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.kudu.mapreduce.KuduTableMapReduceUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public class <span class="typeNameLabel">KuduTableMapReduceUtil</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></pre>
<div class="block">Utility class to setup MR jobs that use Kudu as an input and/or output.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="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>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html#addCredentialsToJob-org.apache.kudu.client.KuduClient-org.apache.hadoop.mapreduce.Job-">addCredentialsToJob</a></span>(<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client,
org.apache.hadoop.mapreduce.Job&nbsp;job)</code>
<div class="block">Export the credentials from a <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a> and store them in the given MapReduce
<code>Job</code> so that <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a>s created from within tasks of that job can
authenticate to Kudu.</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/kudu/mapreduce/KuduTableMapReduceUtil.html#addDependencyJars-org.apache.hadoop.conf.Configuration-java.lang.Class...-">addDependencyJars</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;...&nbsp;classes)</code>
<div class="block">Add the jars containing the given classes to the job's configuration
such that JobClient will ship them to the cluster and add them to
the DistributedCache.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html#addDependencyJars-org.apache.hadoop.mapreduce.Job-">addDependencyJars</a></span>(org.apache.hadoop.mapreduce.Job&nbsp;job)</code>
<div class="block">Add the Kudu dependency jars as well as jars for any of the configured
job classes to the job configuration, so that JobClient will ship them
to the cluster and add them to the DistributedCache.</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/kudu/mapreduce/KuduTableMapReduceUtil.html#addKuduDependencyJars-org.apache.hadoop.conf.Configuration-">addKuduDependencyJars</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Add Kudu and its dependencies (only) to the job configuration.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html#getTableFromContext-org.apache.hadoop.mapreduce.TaskInputOutputContext-">getTableFromContext</a></span>(org.apache.hadoop.mapreduce.TaskInputOutputContext&nbsp;context)</code>
<div class="block">Use this method when setting up a task to get access to the KuduTable in order to create
Inserts, Updates, and Deletes.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html#importCredentialsFromCurrentSubject-org.apache.kudu.client.KuduClient-">importCredentialsFromCurrentSubject</a></span>(<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client)</code>
<div class="block">Import credentials from the current thread's JAAS <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a> into the provided
<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a>.</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">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getTableFromContext-org.apache.hadoop.mapreduce.TaskInputOutputContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableFromContext</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&nbsp;getTableFromContext(org.apache.hadoop.mapreduce.TaskInputOutputContext&nbsp;context)</pre>
<div class="block">Use this method when setting up a task to get access to the KuduTable in order to create
Inserts, Updates, and Deletes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - Map context</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The kudu table object as setup by the output format</dd>
</dl>
</li>
</ul>
<a name="addCredentialsToJob-org.apache.kudu.client.KuduClient-org.apache.hadoop.mapreduce.Job-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addCredentialsToJob</h4>
<pre>public static&nbsp;void&nbsp;addCredentialsToJob(<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client,
org.apache.hadoop.mapreduce.Job&nbsp;job)
throws <a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></pre>
<div class="block">Export the credentials from a <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a> and store them in the given MapReduce
<code>Job</code> so that <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a>s created from within tasks of that job can
authenticate to Kudu.
This must be used before submitting a job when running against a Kudu cluster
configured to require authentication. If using <code>KuduTableMapReduceUtil.TableInputFormatConfigurator</code>,
<code>KuduTableMapReduceUtil.TableOutputFormatConfigurator</code> or another such utility class, this is called
automatically and does not need to be called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>client</code> - the client whose credentials to export</dd>
<dd><code>job</code> - the job to configure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></code> - if credentials cannot be exported</dd>
</dl>
</li>
</ul>
<a name="importCredentialsFromCurrentSubject-org.apache.kudu.client.KuduClient-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>importCredentialsFromCurrentSubject</h4>
<pre>public static&nbsp;void&nbsp;importCredentialsFromCurrentSubject(<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client)</pre>
<div class="block">Import credentials from the current thread's JAAS <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a> into the provided
<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a>.
This must be called for any clients created within a MapReduce job in order to
adopt the credentials added by <a href="../../../../org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html#addCredentialsToJob-org.apache.kudu.client.KuduClient-org.apache.hadoop.mapreduce.Job-"><code>addCredentialsToJob(KuduClient, Job)</code></a>.
When using <a href="../../../../org/apache/kudu/mapreduce/KuduTableInputFormat.html" title="class in org.apache.kudu.mapreduce"><code>KuduTableInputFormat</code></a> or <a href="../../../../org/apache/kudu/mapreduce/KuduTableOutputFormat.html" title="class in org.apache.kudu.mapreduce"><code>KuduTableOutputFormat</code></a>, the
implementation automatically handles creating the client and importing necessary
credentials. As such, this is only necessary in jobs that explicitly create a
<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a>.
If no appropriate credentials are found, does nothing.</div>
</li>
</ul>
<a name="addDependencyJars-org.apache.hadoop.mapreduce.Job-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addDependencyJars</h4>
<pre>public static&nbsp;void&nbsp;addDependencyJars(org.apache.hadoop.mapreduce.Job&nbsp;job)
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">Add the Kudu dependency jars as well as jars for any of the configured
job classes to the job configuration, so that JobClient will ship them
to the cluster and add them to the DistributedCache.</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="addDependencyJars-org.apache.hadoop.conf.Configuration-java.lang.Class...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addDependencyJars</h4>
<pre>public static&nbsp;void&nbsp;addDependencyJars(org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;...&nbsp;classes)
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">Add the jars containing the given classes to the job's configuration
such that JobClient will ship them to the cluster and add them to
the DistributedCache.</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="addKuduDependencyJars-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>addKuduDependencyJars</h4>
<pre>public static&nbsp;void&nbsp;addKuduDependencyJars(org.apache.hadoop.conf.Configuration&nbsp;conf)
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">Add Kudu and its dependencies (only) to the job configuration.
<p>
This is intended as a low-level API, facilitating code reuse between this
class and its mapred counterpart. It also of use to external tools that
need to build a MapReduce job that interacts with Kudu but want
fine-grained control over the jars shipped to the cluster.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - The Configuration object to extend with dependencies.</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>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html" title="class in org.apache.kudu.mapreduce"><code>KuduTableMapReduceUtil</code></a>,
<a href="https://issues.apache.org/jira/browse/PIG-3285">PIG-3285</a></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="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/kudu/mapreduce/KuduTableInputFormat.html" title="class in org.apache.kudu.mapreduce"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kudu/mapreduce/KuduTableOutputCommitter.html" title="class in org.apache.kudu.mapreduce"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html" target="_top">Frames</a></li>
<li><a href="KuduTableMapReduceUtil.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>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>