You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafu.apache.org by mh...@apache.org on 2015/11/18 00:50:00 UTC

[14/51] [partial] incubator-datafu git commit: DATAFU-110 Update website for 1.3.0 release

http://git-wip-us.apache.org/repos/asf/incubator-datafu/blob/158f9991/site/source/docs/hourglass/1.3.0/datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html
----------------------------------------------------------------------
diff --git a/site/source/docs/hourglass/1.3.0/datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html b/site/source/docs/hourglass/1.3.0/datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html
new file mode 100644
index 0000000..9e3f4bf
--- /dev/null
+++ b/site/source/docs/hourglass/1.3.0/datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html
@@ -0,0 +1,805 @@
+<!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_60) on Tue Nov 17 10:08:43 PST 2015 -->
+<title>AbstractPartitionCollapsingIncrementalJob (datafu-hourglass 1.3.0 API)</title>
+<meta name="date" content="2015-11-17">
+<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="AbstractPartitionCollapsingIncrementalJob (datafu-hourglass 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":6,"i2":10,"i3":10,"i4":10,"i5":10,"i6":6,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":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="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="../../../datafu/hourglass/jobs/AbstractNonIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html" target="_top">Frames</a></li>
+<li><a href="AbstractPartitionCollapsingIncrementalJob.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">datafu.hourglass.jobs</div>
+<h2 title="Class AbstractPartitionCollapsingIncrementalJob" class="title">Class AbstractPartitionCollapsingIncrementalJob</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.conf.Configured</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/hourglass/jobs/AbstractJob.html" title="class in datafu.hourglass.jobs">datafu.hourglass.jobs.AbstractJob</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/hourglass/jobs/TimeBasedJob.html" title="class in datafu.hourglass.jobs">datafu.hourglass.jobs.TimeBasedJob</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">datafu.hourglass.jobs.IncrementalJob</a></li>
+<li>
+<ul class="inheritance">
+<li>datafu.hourglass.jobs.AbstractPartitionCollapsingIncrementalJob</li>
+</ul>
+</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>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../datafu/hourglass/jobs/PartitionCollapsingIncrementalJob.html" title="class in datafu.hourglass.jobs">PartitionCollapsingIncrementalJob</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractPartitionCollapsingIncrementalJob</span>
+extends <a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">IncrementalJob</a></pre>
+<div class="block">An <a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs"><code>IncrementalJob</code></a> that consumes partitioned input data and collapses the
+ partitions to produce a single output.  This job can be used to process data
+ using a sliding window.  It is capable of reusing the previous output, which
+ means that it can process data more efficiently.
+ Only Avro is supported for the input, intermediate, and output data.
+ 
+ <p>
+ Implementations of this class must provide key, intermediate value, and output value schemas.
+ The key and intermediate value schemas define the output for the mapper and combiner.
+ The key and output value schemas define the output for the reducer.
+ These are defined by overriding <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getKeySchema--"><code>IncrementalJob.getKeySchema()</code></a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getIntermediateValueSchema--"><code>IncrementalJob.getIntermediateValueSchema()</code></a>,
+ and <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getOutputValueSchema--"><code>IncrementalJob.getOutputValueSchema()</code></a>.
+ </p>
+ 
+ <p>
+ Implementations must also provide a mapper by overriding <a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getMapper--"><code>getMapper()</code></a> and an accumulator
+ for the reducer by overriding <a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getReducerAccumulator--"><code>getReducerAccumulator()</code></a>.  An optional combiner may be
+ provided by overriding <a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getCombinerAccumulator--"><code>getCombinerAccumulator()</code></a>.  For the combiner to be used
+ the property <em>use.combiner</em> must also be set to true.
+ </p>
+ 
+ <p>
+ The input path can be provided either through the property <em>input.path</em>
+ or by calling <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setInputPaths-java.util.List-"><code>AbstractJob.setInputPaths(List)</code></a>.  If multiple input paths are provided then
+ this implicitly means a join is to be performed.  Multiple input paths can be provided via
+ properties by prefixing each with <em>input.path.</em>, such as <em>input.path.first</em>
+ and <em>input.path.second</em>.
+ Input data must be partitioned by day according to the naming convention yyyy/MM/dd.
+ The output path can be provided either through the property <em>output.path</em> 
+ or by calling <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setOutputPath-org.apache.hadoop.fs.Path-"><code>AbstractJob.setOutputPath(Path)</code></a>.
+ Output data will be written using the naming convention yyyyMMdd, where the date used
+ to format the output path is the same as the end of the desired time range to process.
+ For example, if the desired time range to process is 2013/01/01 through 2013/01/14,
+ then the output will be named 20130114. 
+ By default the job will fail if any input data in the desired time window is missing.  This can be overriden by setting
+ <em>fail.on.missing</em> to false.
+ </p>
+ 
+ <p>
+ The job will not process input if the corresponding output has already been produced.  For example, if the desired date
+ range is 2013/01/01 through 2013/01/14 and the output 20130114 already exists, then it assumes the work has alreaday
+ been completed.
+ </p>
+ 
+ <p>
+ By default only the latest output will be kept.  All other outputs will be removed.  This can be controlled
+ by setting the property <em>retention.count</em>, or by calling <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setRetentionCount-java.lang.Integer-"><code>AbstractJob.setRetentionCount(Integer)</code></a>.
+ </p>
+ 
+ <p>
+ Two types of sliding windows may be used: <em>fixed-length</em> and <em>fixed-start</em>.  For a fixed-length
+ sliding window, the size of the window is fixed; the start and end move according to the
+ availability of input data.  For a fixed-start window, the size of the window is flexible;
+ the start is fixed and the end moves according to the availability of input data.
+ </p>
+ 
+ <p>
+ A fixed-length sliding window can be defined either by setting the property <em>num.days</em>
+ or by calling <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setNumDays-java.lang.Integer-"><code>TimeBasedJob.setNumDays(Integer)</code></a>.  This sets how many days of input data will be
+ consumed.  By default the end of the window will be the same as the date of the latest available
+ input data.  The start is then determine by the number of days to consume.  The end date can
+ be moved back relative to the latest input data by setting the <em>days.ago</em> property or
+ by calling <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setDaysAgo-java.lang.Integer-"><code>TimeBasedJob.setDaysAgo(Integer)</code></a>.  Since the end date is determined by the availability
+ of input data, as new data arrives the window will advance forward.
+ </p>
+ 
+ <p>
+ A fixed-start sliding window can be defined by setting the property <em>start.date</em> or
+ by calling <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setStartDate-java.util.Date-"><code>TimeBasedJob.setStartDate(java.util.Date)</code></a>.  The end date will be the same as the date of
+ the latest available input data.  The end date can
+ be moved back relative to the latest input data by setting the <em>days.ago</em> property or
+ by calling <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setDaysAgo-java.lang.Integer-"><code>TimeBasedJob.setDaysAgo(Integer)</code></a>.
+ Because the end date is determined by the availability of input data, as new data arrives the window 
+ will grow to include it.
+ </p>
+ 
+ <p>
+ Previous output can be reused by setting the <em>reuse.previous.output</em> property to true, or
+ by calling <a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#setReusePreviousOutput-boolean-"><code>setReusePreviousOutput(boolean)</code></a>.  Reusing the previous output is often more efficient
+ because only input data outside of the time window covered by the previous output needs to be consumed.
+ For example, given a fixed-start sliding window job, if one new day of input data is available since the
+ last time the job ran, then the job can reuse the previous output and only read the newest day of data, rather
+ than reading all the input data again.  Given a fixed-length sliding window in the same scenario, the new output
+ can be produced by adding the newest input to the previous output and subtracting the oldest input from the old
+ window.
+ </p>
+ 
+ <p>
+ For a fixed-start sliding window, if the schema for the intermediate and output values are the same then no additional
+ changes are necessary, as the reducer's accumulator should be capable of adding the new input to the previous output.
+ However if they are different then a record must be defined by overriding <a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getRecordMerger--"><code>getRecordMerger()</code></a> so that the previous
+ output can be merged with the partial output produced by reducing the new input data.
+ For the fixed-length sliding window one must override <a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getOldRecordMerger--"><code>getOldRecordMerger()</code></a> to reuse the previous output.
+ This method essentially unmerges old, partial output data from the current output.  For this case as well if the intermediate
+ and output schemas are the same the <a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getRecordMerger--"><code>getRecordMerger()</code></a> method does not need to be overriden.
+ </p>
+ 
+ <p>
+ The number of reducers to use is automatically determined based on the size of the data to process.  
+ The total size is computed and then divided by the value of the property <em>num.reducers.bytes.per.reducer</em>, which
+ defaults to 256 MB.  This is the number of reducers that will be used.  This calculation includes
+ the input data as well as previous output that will be reused.    It is also possible calculate the number of reducers
+ separately for the input and previous output through the properties <em>num.reducers.input.bytes.per.reducer</em>
+ and <em>num.reducers.previous.bytes.per.reducer</em>.  The reducers will be computed separately for the two sets of data
+ and then added together.  The number of reducers can also be set to a fixed value through the property <em>num.reducers</em>.
+ </p>
+ 
+ <p>
+ This type of job is capable of performing its work over multiple iterations if previous output can be reused.  
+ The number of days to process at a time can be limited by setting the property <em>max.days.to.process</em>,
+ or by calling <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setMaxToProcess-java.lang.Integer-"><code>IncrementalJob.setMaxToProcess(Integer)</code></a>.  The default is 90 days.  
+ This can be useful when there are restrictions on how many tasks 
+ can be used by a single MapReduce job in the cluster.  When this property is set, the job will process no more than
+ this many days at a time, and it will perform one or more iterations if necessary to complete the work.
+ The number of iterations can be limited by setting the property <em>max.iterations</em>, or by calling <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setMaxIterations-java.lang.Integer-"><code>IncrementalJob.setMaxIterations(Integer)</code></a>.
+ If the number of iterations is exceeded the job will fail.  By default the maximum number of iterations is 20.
+ </p>
+  
+ <p>
+ Hadoop configuration may be provided by setting a property with the prefix <em>hadoop-conf.</em>.
+ For example, <em>mapred.min.split.size</em> can be configured by setting property
+ <em>hadoop-conf.mapred.min.split.size</em> to the desired value. 
+ </p></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="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs">AbstractPartitionCollapsingIncrementalJob.Report</a></span></code>
+<div class="block">Reports files created and processed for an iteration of the job.</div>
+</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>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#Z:Z_reusePreviousOutput">_reusePreviousOutput</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="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#AbstractPartitionCollapsingIncrementalJob--">AbstractPartitionCollapsingIncrementalJob</a></span>()</code>
+<div class="block">Initializes the job.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#AbstractPartitionCollapsingIncrementalJob-java.lang.String-java.util.Properties-">AbstractPartitionCollapsingIncrementalJob</a></span>(java.lang.String&nbsp;name,
+                                         java.util.Properties&nbsp;props)</code>
+<div class="block">Initializes the job with a job name and properties.</div>
+</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><a href="../../../datafu/hourglass/model/Accumulator.html" title="interface in datafu.hourglass.model">Accumulator</a>&lt;org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getCombinerAccumulator--">getCombinerAccumulator</a></span>()</code>
+<div class="block">Gets the accumulator used for the combiner.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../../datafu/hourglass/model/Mapper.html" title="interface in datafu.hourglass.model">Mapper</a>&lt;org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getMapper--">getMapper</a></span>()</code>
+<div class="block">Gets the mapper.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../datafu/hourglass/model/Merger.html" title="interface in datafu.hourglass.model">Merger</a>&lt;org.apache.avro.generic.GenericRecord&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getOldRecordMerger--">getOldRecordMerger</a></span>()</code>
+<div class="block">Gets the record merger that is capable of unmerging old partial output from the new output.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getOutputSchemaName--">getOutputSchemaName</a></span>()</code>
+<div class="block">Get the name for the reduce output schema.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getOutputSchemaNamespace--">getOutputSchemaNamespace</a></span>()</code>
+<div class="block">Get the namespace for the reduce output schema.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../datafu/hourglass/model/Merger.html" title="interface in datafu.hourglass.model">Merger</a>&lt;org.apache.avro.generic.GenericRecord&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getRecordMerger--">getRecordMerger</a></span>()</code>
+<div class="block">Gets the record merger that is capable of merging previous output with a new partial output.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../datafu/hourglass/model/Accumulator.html" title="interface in datafu.hourglass.model">Accumulator</a>&lt;org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getReducerAccumulator--">getReducerAccumulator</a></span>()</code>
+<div class="block">Gets the accumulator used for the reducer.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs">AbstractPartitionCollapsingIncrementalJob.Report</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getReports--">getReports</a></span>()</code>
+<div class="block">Get reports that summarize each of the job iterations.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#getReusePreviousOutput--">getReusePreviousOutput</a></span>()</code>
+<div class="block">Get whether previous output should be reused.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#initialize--">initialize</a></span>()</code>
+<div class="block">Initialization required before running job.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#run--">run</a></span>()</code>
+<div class="block">Run the job.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#setProperties-java.util.Properties-">setProperties</a></span>(java.util.Properties&nbsp;props)</code>
+<div class="block">Sets the configuration properties.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html#setReusePreviousOutput-boolean-">setReusePreviousOutput</a></span>(boolean&nbsp;reuse)</code>
+<div class="block">Set whether previous output should be reused.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.datafu.hourglass.jobs.IncrementalJob">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;datafu.hourglass.jobs.<a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">IncrementalJob</a></h3>
+<code><a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getIntermediateValueSchema--">getIntermediateValueSchema</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getKeySchema--">getKeySchema</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getMaxIterations--">getMaxIterations</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getMaxToProcess--">getMaxToProcess</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getOutputValueSchema--">getOutputValueSchema</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getSchemas--">getSchemas</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#isFailOnMissing--">isFailOnMissing</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setFailOnMissing-boolean-">setFailOnMissing</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setMaxIterations-java.lang.Integer-">setMaxIterations</a>, <a href="../../../datafu/hourglass/jobs/Incre
 mentalJob.html#setMaxToProcess-java.lang.Integer-">setMaxToProcess</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.datafu.hourglass.jobs.TimeBasedJob">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;datafu.hourglass.jobs.<a href="../../../datafu/hourglass/jobs/TimeBasedJob.html" title="class in datafu.hourglass.jobs">TimeBasedJob</a></h3>
+<code><a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#getDaysAgo--">getDaysAgo</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#getEndDate--">getEndDate</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#getNumDays--">getNumDays</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#getStartDate--">getStartDate</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setDaysAgo-java.lang.Integer-">setDaysAgo</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setEndDate-java.util.Date-">setEndDate</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setNumDays-java.lang.Integer-">setNumDays</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setStartDate-java.util.Date-">setStartDate</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#validate--">validate</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.datafu.hourglass.jobs.AbstractJob">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;datafu.hourglass.jobs.<a href="../../../datafu/hourglass/jobs/AbstractJob.html" title="class in datafu.hourglass.jobs">AbstractJob</a></h3>
+<code><a href="../../../datafu/hourglass/jobs/AbstractJob.html#config-org.apache.hadoop.conf.Configuration-">config</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#createRandomTempPath--">createRandomTempPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#ensurePath-org.apache.hadoop.fs.Path-">ensurePath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getCountersParentPath--">getCountersParentPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getFileSystem--">getFileSystem</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getInputPaths--">getInputPaths</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getName--">getName</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getNumReducers--">getNumReducers</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getOutputPath--">getOutputPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getProperties--">getProperties</a>, 
 <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getRetentionCount--">getRetentionCount</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getTempPath--">getTempPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#isUseCombiner--">isUseCombiner</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#randomTempPath--">randomTempPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setCountersParentPath-org.apache.hadoop.fs.Path-">setCountersParentPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setInputPaths-java.util.List-">setInputPaths</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setName-java.lang.String-">setName</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setNumReducers-java.lang.Integer-">setNumReducers</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setOutputPath-org.apache.hadoop.fs.Path-">setOutputPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob
 .html#setRetentionCount-java.lang.Integer-">setRetentionCount</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setTempPath-org.apache.hadoop.fs.Path-">setTempPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setUseCombiner-boolean-">setUseCombiner</a></code></li>
+</ul>
+<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.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</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="Z:Z_reusePreviousOutput">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>_reusePreviousOutput</h4>
+<pre>protected&nbsp;boolean _reusePreviousOutput</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractPartitionCollapsingIncrementalJob--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AbstractPartitionCollapsingIncrementalJob</h4>
+<pre>public&nbsp;AbstractPartitionCollapsingIncrementalJob()
+                                          throws java.io.IOException</pre>
+<div class="block">Initializes the job.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - IOException</dd>
+</dl>
+</li>
+</ul>
+<a name="AbstractPartitionCollapsingIncrementalJob-java.lang.String-java.util.Properties-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractPartitionCollapsingIncrementalJob</h4>
+<pre>public&nbsp;AbstractPartitionCollapsingIncrementalJob(java.lang.String&nbsp;name,
+                                                 java.util.Properties&nbsp;props)
+                                          throws java.io.IOException</pre>
+<div class="block">Initializes the job with a job name and properties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - job name</dd>
+<dd><code>props</code> - configuration properties</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - IOException</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getMapper--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMapper</h4>
+<pre>public abstract&nbsp;<a href="../../../datafu/hourglass/model/Mapper.html" title="interface in datafu.hourglass.model">Mapper</a>&lt;org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord&gt;&nbsp;getMapper()</pre>
+<div class="block">Gets the mapper.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mapper</dd>
+</dl>
+</li>
+</ul>
+<a name="getCombinerAccumulator--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCombinerAccumulator</h4>
+<pre>public&nbsp;<a href="../../../datafu/hourglass/model/Accumulator.html" title="interface in datafu.hourglass.model">Accumulator</a>&lt;org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord&gt;&nbsp;getCombinerAccumulator()</pre>
+<div class="block">Gets the accumulator used for the combiner.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>combiner accumulator</dd>
+</dl>
+</li>
+</ul>
+<a name="getReducerAccumulator--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReducerAccumulator</h4>
+<pre>public abstract&nbsp;<a href="../../../datafu/hourglass/model/Accumulator.html" title="interface in datafu.hourglass.model">Accumulator</a>&lt;org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord&gt;&nbsp;getReducerAccumulator()</pre>
+<div class="block">Gets the accumulator used for the reducer.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reducer accumulator</dd>
+</dl>
+</li>
+</ul>
+<a name="getRecordMerger--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRecordMerger</h4>
+<pre>public&nbsp;<a href="../../../datafu/hourglass/model/Merger.html" title="interface in datafu.hourglass.model">Merger</a>&lt;org.apache.avro.generic.GenericRecord&gt;&nbsp;getRecordMerger()</pre>
+<div class="block">Gets the record merger that is capable of merging previous output with a new partial output.
+ This is only needed when reusing previous output where the intermediate and output schemas are different.
+ New partial output is produced by the reducer from new input that is after the previous output.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>merger</dd>
+</dl>
+</li>
+</ul>
+<a name="getOldRecordMerger--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOldRecordMerger</h4>
+<pre>public&nbsp;<a href="../../../datafu/hourglass/model/Merger.html" title="interface in datafu.hourglass.model">Merger</a>&lt;org.apache.avro.generic.GenericRecord&gt;&nbsp;getOldRecordMerger()</pre>
+<div class="block">Gets the record merger that is capable of unmerging old partial output from the new output.
+ This is only needed when reusing previous output for a fixed-length sliding window.
+ The new output is the result of merging the previous output with the new partial output.
+ The old partial output is produced by the reducer from old input data before the time range of
+ the previous output.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>merger</dd>
+</dl>
+</li>
+</ul>
+<a name="getOutputSchemaName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputSchemaName</h4>
+<pre>protected&nbsp;java.lang.String&nbsp;getOutputSchemaName()</pre>
+<div class="block">Get the name for the reduce output schema. 
+ By default this is the name of the class with "Output" appended.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>output schema name</dd>
+</dl>
+</li>
+</ul>
+<a name="getOutputSchemaNamespace--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputSchemaNamespace</h4>
+<pre>protected&nbsp;java.lang.String&nbsp;getOutputSchemaNamespace()</pre>
+<div class="block">Get the namespace for the reduce output schema.
+ By default this is the package of the class.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>output schema namespace</dd>
+</dl>
+</li>
+</ul>
+<a name="setProperties-java.util.Properties-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProperties</h4>
+<pre>public&nbsp;void&nbsp;setProperties(java.util.Properties&nbsp;props)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../datafu/hourglass/jobs/AbstractJob.html#setProperties-java.util.Properties-">AbstractJob</a></code></span></div>
+<div class="block">Sets the configuration properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setProperties-java.util.Properties-">setProperties</a></code>&nbsp;in class&nbsp;<code><a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">IncrementalJob</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>props</code> - Properties</dd>
+</dl>
+</li>
+</ul>
+<a name="getReusePreviousOutput--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReusePreviousOutput</h4>
+<pre>public&nbsp;boolean&nbsp;getReusePreviousOutput()</pre>
+<div class="block">Get whether previous output should be reused.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if previous output should be reused</dd>
+</dl>
+</li>
+</ul>
+<a name="setReusePreviousOutput-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setReusePreviousOutput</h4>
+<pre>public&nbsp;void&nbsp;setReusePreviousOutput(boolean&nbsp;reuse)</pre>
+<div class="block">Set whether previous output should be reused.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reuse</code> - true if previous output should be reused</dd>
+</dl>
+</li>
+</ul>
+<a name="initialize--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>protected&nbsp;void&nbsp;initialize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../datafu/hourglass/jobs/AbstractJob.html#initialize--">AbstractJob</a></code></span></div>
+<div class="block">Initialization required before running job.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../datafu/hourglass/jobs/IncrementalJob.html#initialize--">initialize</a></code>&nbsp;in class&nbsp;<code><a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">IncrementalJob</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="run--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>run</h4>
+<pre>public&nbsp;void&nbsp;run()
+         throws java.io.IOException,
+                java.lang.InterruptedException,
+                java.lang.ClassNotFoundException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../datafu/hourglass/jobs/AbstractJob.html#run--">AbstractJob</a></code></span></div>
+<div class="block">Run the job.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../datafu/hourglass/jobs/AbstractJob.html#run--">run</a></code>&nbsp;in class&nbsp;<code><a href="../../../datafu/hourglass/jobs/AbstractJob.html" title="class in datafu.hourglass.jobs">AbstractJob</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - IOException</dd>
+<dd><code>java.lang.InterruptedException</code> - InterruptedException</dd>
+<dd><code>java.lang.ClassNotFoundException</code> - ClassNotFoundException</dd>
+</dl>
+</li>
+</ul>
+<a name="getReports--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getReports</h4>
+<pre>public&nbsp;java.util.List&lt;<a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs">AbstractPartitionCollapsingIncrementalJob.Report</a>&gt;&nbsp;getReports()</pre>
+<div class="block">Get reports that summarize each of the job iterations.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reports</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="../../../datafu/hourglass/jobs/AbstractNonIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html" target="_top">Frames</a></li>
+<li><a href="AbstractPartitionCollapsingIncrementalJob.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 ======= -->
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-datafu/blob/158f9991/site/source/docs/hourglass/1.3.0/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html
----------------------------------------------------------------------
diff --git a/site/source/docs/hourglass/1.3.0/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html b/site/source/docs/hourglass/1.3.0/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html
new file mode 100644
index 0000000..923f7d3
--- /dev/null
+++ b/site/source/docs/hourglass/1.3.0/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html
@@ -0,0 +1,362 @@
+<!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_60) on Tue Nov 17 10:08:44 PST 2015 -->
+<title>AbstractPartitionPreservingIncrementalJob.Report (datafu-hourglass 1.3.0 API)</title>
+<meta name="date" content="2015-11-17">
+<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="AbstractPartitionPreservingIncrementalJob.Report (datafu-hourglass 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All 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="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="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html" title="class in datafu.hourglass.jobs"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/DateRangeConfigurable.html" title="interface in datafu.hourglass.jobs"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" target="_top">Frames</a></li>
+<li><a href="AbstractPartitionPreservingIncrementalJob.Report.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">datafu.hourglass.jobs</div>
+<h2 title="Class AbstractPartitionPreservingIncrementalJob.Report" class="title">Class AbstractPartitionPreservingIncrementalJob.Report</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>datafu.hourglass.jobs.AbstractPartitionPreservingIncrementalJob.Report</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html" title="class in datafu.hourglass.jobs">AbstractPartitionPreservingIncrementalJob</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="typeNameLabel">AbstractPartitionPreservingIncrementalJob.Report</span>
+extends java.lang.Object</pre>
+<div class="block">Reports files created and processed for an iteration of the job.</div>
+</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="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#Report--">Report</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="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>org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getCountersPath--">getCountersPath</a></span>()</code>
+<div class="block">Gets the path to the counters file, if one was written.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../datafu/hourglass/fs/DatePath.html" title="class in datafu.hourglass.fs">DatePath</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getInputFiles--">getInputFiles</a></span>()</code>
+<div class="block">Gets input files that were processed.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getJobId--">getJobId</a></span>()</code>
+<div class="block">Gets the job ID.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getJobName--">getJobName</a></span>()</code>
+<div class="block">Gets the job name.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../datafu/hourglass/fs/DatePath.html" title="class in datafu.hourglass.fs">DatePath</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getOutputFiles--">getOutputFiles</a></span>()</code>
+<div class="block">Gets the output files that were produced by the job.</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.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</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="Report--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Report</h4>
+<pre>public&nbsp;Report()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getJobName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getJobName</h4>
+<pre>public&nbsp;java.lang.String&nbsp;getJobName()</pre>
+<div class="block">Gets the job name.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>job name</dd>
+</dl>
+</li>
+</ul>
+<a name="getJobId--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getJobId</h4>
+<pre>public&nbsp;java.lang.String&nbsp;getJobId()</pre>
+<div class="block">Gets the job ID.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>job ID</dd>
+</dl>
+</li>
+</ul>
+<a name="getCountersPath--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCountersPath</h4>
+<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;getCountersPath()</pre>
+<div class="block">Gets the path to the counters file, if one was written.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>counters path</dd>
+</dl>
+</li>
+</ul>
+<a name="getInputFiles--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInputFiles</h4>
+<pre>public&nbsp;java.util.List&lt;<a href="../../../datafu/hourglass/fs/DatePath.html" title="class in datafu.hourglass.fs">DatePath</a>&gt;&nbsp;getInputFiles()</pre>
+<div class="block">Gets input files that were processed.  These are files that are within
+ the desired date range.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new input files</dd>
+</dl>
+</li>
+</ul>
+<a name="getOutputFiles--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOutputFiles</h4>
+<pre>public&nbsp;java.util.List&lt;<a href="../../../datafu/hourglass/fs/DatePath.html" title="class in datafu.hourglass.fs">DatePath</a>&gt;&nbsp;getOutputFiles()</pre>
+<div class="block">Gets the output files that were produced by the job.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>old input files</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="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html" title="class in datafu.hourglass.jobs"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/DateRangeConfigurable.html" title="interface in datafu.hourglass.jobs"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" target="_top">Frames</a></li>
+<li><a href="AbstractPartitionPreservingIncrementalJob.Report.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 ======= -->
+</body>
+</html>