<!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 (version 1.7.0_51) on Wed Sep 16 15:55:11 PDT 2015 -->
<title>JobLogger</title>
<meta name="date" content="2015-09-16">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="JobLogger";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/spark/scheduler/InputFormatInfo.html" title="class in org.apache.spark.scheduler"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/spark/scheduler/JobResult.html" title="interface in org.apache.spark.scheduler"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/spark/scheduler/JobLogger.html" target="_top">Frames</a></li>
<li><a href="JobLogger.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All 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: </li>
<li>Nested | </li>
<li>Field | </li>
<li><a href="#constructor_summary">Constr</a> | </li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li><a href="#constructor_detail">Constr</a> | </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.spark.scheduler</div>
<h2 title="Class JobLogger" class="title">Class JobLogger</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.spark.scheduler.JobLogger</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/spark/Logging.html" title="interface in org.apache.spark">Logging</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html" title="interface in org.apache.spark.scheduler">SparkListener</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">JobLogger</span>
extends java.lang.Object
implements <a href="../../../../org/apache/spark/scheduler/SparkListener.html" title="interface in org.apache.spark.scheduler">SparkListener</a>, <a href="../../../../org/apache/spark/Logging.html" title="interface in org.apache.spark">Logging</a></pre>
<div class="block">:: DeveloperApi ::
A logger class to record runtime information for jobs in Spark. This class outputs one log file
for each Spark job, containing tasks start/stop and shuffle information. JobLogger is a subclass
of SparkListener, use addSparkListener to add JobLogger to a SparkContext after the SparkContext
is created. Note that each JobLogger only works for one SparkContext
<p>
NOTE: The functionality of this class is heavily stripped down to accommodate for a general
refactor of the SparkListener interface. In its place, the EventLoggingListener is introduced
to log application information as SparkListenerEvents. To enable this functionality, set
spark.eventLog.enabled to true.</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#JobLogger()">JobLogger</a></strong>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#JobLogger(java.lang.String, java.lang.String)">JobLogger</a></strong>(java.lang.String user,
java.lang.String logDirName)</code> </td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#buildJobStageDependencies(int, scala.collection.Seq)">buildJobStageDependencies</a></strong>(int jobId,
scala.collection.Seq<java.lang.Object> stageIds)</code>
<div class="block">Build up the maps that represent stage-job relationships</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#closeLogWriter(int)">closeLogWriter</a></strong>(int jobId)</code>
<div class="block">Close log file, and clean the stage relationship in stageIdToJobId</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#createLogDir()">createLogDir</a></strong>()</code>
<div class="block">Create a folder for log files, the folder's name is the creation time of jobLogger</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#createLogWriter(int)">createLogWriter</a></strong>(int jobId)</code>
<div class="block">Create a log file for one job</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#jobLogInfo(int, java.lang.String, boolean)">jobLogInfo</a></strong>(int jobId,
java.lang.String info,
boolean withTime)</code>
<div class="block">Write info into log file</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#logDirName()">logDirName</a></strong>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#onJobEnd(org.apache.spark.scheduler.SparkListenerJobEnd)">onJobEnd</a></strong>(<a href="../../../../org/apache/spark/scheduler/SparkListenerJobEnd.html" title="class in org.apache.spark.scheduler">SparkListenerJobEnd</a> jobEnd)</code>
<div class="block">When job ends, recording job completion status and close log file</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#onJobStart(org.apache.spark.scheduler.SparkListenerJobStart)">onJobStart</a></strong>(<a href="../../../../org/apache/spark/scheduler/SparkListenerJobStart.html" title="class in org.apache.spark.scheduler">SparkListenerJobStart</a> jobStart)</code>
<div class="block">When job starts, record job property and stage graph</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#onStageCompleted(org.apache.spark.scheduler.SparkListenerStageCompleted)">onStageCompleted</a></strong>(<a href="../../../../org/apache/spark/scheduler/SparkListenerStageCompleted.html" title="class in org.apache.spark.scheduler">SparkListenerStageCompleted</a> stageCompleted)</code>
<div class="block">When stage is completed, record stage completion status</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#onStageSubmitted(org.apache.spark.scheduler.SparkListenerStageSubmitted)">onStageSubmitted</a></strong>(<a href="../../../../org/apache/spark/scheduler/SparkListenerStageSubmitted.html" title="class in org.apache.spark.scheduler">SparkListenerStageSubmitted</a> stageSubmitted)</code>
<div class="block">When stage is submitted, record stage submit info</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#onTaskEnd(org.apache.spark.scheduler.SparkListenerTaskEnd)">onTaskEnd</a></strong>(<a href="../../../../org/apache/spark/scheduler/SparkListenerTaskEnd.html" title="class in org.apache.spark.scheduler">SparkListenerTaskEnd</a> taskEnd)</code>
<div class="block">When task ends, record task completion status and metrics</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#recordJobProperties(int, java.util.Properties)">recordJobProperties</a></strong>(int jobId,
java.util.Properties properties)</code>
<div class="block">Record job properties into job log file</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#recordTaskMetrics(int, java.lang.String, org.apache.spark.scheduler.TaskInfo, org.apache.spark.executor.TaskMetrics)">recordTaskMetrics</a></strong>(int stageId,
java.lang.String status,
<a href="../../../../org/apache/spark/scheduler/TaskInfo.html" title="class in org.apache.spark.scheduler">TaskInfo</a> taskInfo,
org.apache.spark.executor.TaskMetrics taskMetrics)</code>
<div class="block">Record task metrics into job log files, including execution info and shuffle metrics</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#stageLogInfo(int, java.lang.String, boolean)">stageLogInfo</a></strong>(int stageId,
java.lang.String info,
boolean withTime)</code>
<div class="block">Write info into log file</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/spark/scheduler/JobLogger.html#user()">user</a></strong>()</code> </td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.spark.scheduler.SparkListener">
<!-- -->
</a>
<h3>Methods inherited from interface org.apache.spark.scheduler.<a href="../../../../org/apache/spark/scheduler/SparkListener.html" title="interface in org.apache.spark.scheduler">SparkListener</a></h3>
<code><a href="../../../../org/apache/spark/scheduler/SparkListener.html#onApplicationEnd(org.apache.spark.scheduler.SparkListenerApplicationEnd)">onApplicationEnd</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onApplicationStart(org.apache.spark.scheduler.SparkListenerApplicationStart)">onApplicationStart</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onBlockManagerAdded(org.apache.spark.scheduler.SparkListenerBlockManagerAdded)">onBlockManagerAdded</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onBlockManagerRemoved(org.apache.spark.scheduler.SparkListenerBlockManagerRemoved)">onBlockManagerRemoved</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onBlockUpdated(org.apache.spark.scheduler.SparkListenerBlockUpdated)">onBlockUpdated</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onEnvironmentUpdate(org.apache.spark.scheduler.SparkListenerEnvironmentUpdate)">onEnvironmentUpdate</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onExecutorAdded(org.apache.spark.scheduler.SparkListenerExecutorAdded)">onExecutorAdded</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onExecutorMetricsUpdate(org.apache.spark.scheduler.SparkListenerExecutorMetricsUpdate)">onExecutorMetricsUpdate</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onExecutorRemoved(org.apache.spark.scheduler.SparkListenerExecutorRemoved)">onExecutorRemoved</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onTaskGettingResult(org.apache.spark.scheduler.SparkListenerTaskGettingResult)">onTaskGettingResult</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onTaskStart(org.apache.spark.scheduler.SparkListenerTaskStart)">onTaskStart</a>, <a href="../../../../org/apache/spark/scheduler/SparkListener.html#onUnpersistRDD(org.apache.spark.scheduler.SparkListenerUnpersistRDD)">onUnpersistRDD</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.spark.Logging">
<!-- -->
</a>
<h3>Methods inherited from interface org.apache.spark.<a href="../../../../org/apache/spark/Logging.html" title="interface in org.apache.spark">Logging</a></h3>
<code><a href="../../../../org/apache/spark/Logging.html#initializeIfNecessary()">initializeIfNecessary</a>, <a href="../../../../org/apache/spark/Logging.html#initializeLogging()">initializeLogging</a>, <a href="../../../../org/apache/spark/Logging.html#isTraceEnabled()">isTraceEnabled</a>, <a href="../../../../org/apache/spark/Logging.html#log_()">log_</a>, <a href="../../../../org/apache/spark/Logging.html#log()">log</a>, <a href="../../../../org/apache/spark/Logging.html#logDebug(scala.Function0)">logDebug</a>, <a href="../../../../org/apache/spark/Logging.html#logDebug(scala.Function0, java.lang.Throwable)">logDebug</a>, <a href="../../../../org/apache/spark/Logging.html#logError(scala.Function0)">logError</a>, <a href="../../../../org/apache/spark/Logging.html#logError(scala.Function0, java.lang.Throwable)">logError</a>, <a href="../../../../org/apache/spark/Logging.html#logInfo(scala.Function0)">logInfo</a>, <a href="../../../../org/apache/spark/Logging.html#logInfo(scala.Function0, java.lang.Throwable)">logInfo</a>, <a href="../../../../org/apache/spark/Logging.html#logName()">logName</a>, <a href="../../../../org/apache/spark/Logging.html#logTrace(scala.Function0)">logTrace</a>, <a href="../../../../org/apache/spark/Logging.html#logTrace(scala.Function0, java.lang.Throwable)">logTrace</a>, <a href="../../../../org/apache/spark/Logging.html#logWarning(scala.Function0)">logWarning</a>, <a href="../../../../org/apache/spark/Logging.html#logWarning(scala.Function0, java.lang.Throwable)">logWarning</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="JobLogger(java.lang.String, java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JobLogger</h4>
<pre>public JobLogger(java.lang.String user,
java.lang.String logDirName)</pre>
</li>
</ul>
<a name="JobLogger()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JobLogger</h4>
<pre>public JobLogger()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="user()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>user</h4>
<pre>public java.lang.String user()</pre>
</li>
</ul>
<a name="logDirName()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logDirName</h4>
<pre>public java.lang.String logDirName()</pre>
</li>
</ul>
<a name="createLogDir()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createLogDir</h4>
<pre>protected void createLogDir()</pre>
<div class="block">Create a folder for log files, the folder's name is the creation time of jobLogger</div>
</li>
</ul>
<a name="createLogWriter(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createLogWriter</h4>
<pre>protected void createLogWriter(int jobId)</pre>
<div class="block">Create a log file for one job</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>jobId</code> - ID of the job</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>FileNotFoundException</code> - Fail to create log file</dd></dl>
</li>
</ul>
<a name="closeLogWriter(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeLogWriter</h4>
<pre>protected void closeLogWriter(int jobId)</pre>
<div class="block">Close log file, and clean the stage relationship in stageIdToJobId</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>jobId</code> - ID of the job</dd></dl>
</li>
</ul>
<a name="buildJobStageDependencies(int, scala.collection.Seq)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildJobStageDependencies</h4>
<pre>protected void buildJobStageDependencies(int jobId,
scala.collection.Seq<java.lang.Object> stageIds)</pre>
<div class="block">Build up the maps that represent stage-job relationships</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>jobId</code> - ID of the job</dd><dd><code>stageIds</code> - IDs of the associated stages</dd></dl>
</li>
</ul>
<a name="jobLogInfo(int, java.lang.String, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>jobLogInfo</h4>
<pre>protected void jobLogInfo(int jobId,
java.lang.String info,
boolean withTime)</pre>
<div class="block">Write info into log file</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>jobId</code> - ID of the job</dd><dd><code>info</code> - Info to be recorded</dd><dd><code>withTime</code> - Controls whether to record time stamp before the info, default is true</dd></dl>
</li>
</ul>
<a name="stageLogInfo(int, java.lang.String, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stageLogInfo</h4>
<pre>protected void stageLogInfo(int stageId,
java.lang.String info,
boolean withTime)</pre>
<div class="block">Write info into log file</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stageId</code> - ID of the stage</dd><dd><code>info</code> - Info to be recorded</dd><dd><code>withTime</code> - Controls whether to record time stamp before the info, default is true</dd></dl>
</li>
</ul>
<a name="recordTaskMetrics(int, java.lang.String, org.apache.spark.scheduler.TaskInfo, org.apache.spark.executor.TaskMetrics)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recordTaskMetrics</h4>
<pre>protected void recordTaskMetrics(int stageId,
java.lang.String status,
<a href="../../../../org/apache/spark/scheduler/TaskInfo.html" title="class in org.apache.spark.scheduler">TaskInfo</a> taskInfo,
org.apache.spark.executor.TaskMetrics taskMetrics)</pre>
<div class="block">Record task metrics into job log files, including execution info and shuffle metrics</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stageId</code> - Stage ID of the task</dd><dd><code>status</code> - Status info of the task</dd><dd><code>taskInfo</code> - Task description info</dd><dd><code>taskMetrics</code> - Task running metrics</dd></dl>
</li>
</ul>
<a name="onStageSubmitted(org.apache.spark.scheduler.SparkListenerStageSubmitted)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStageSubmitted</h4>
<pre>public void onStageSubmitted(<a href="../../../../org/apache/spark/scheduler/SparkListenerStageSubmitted.html" title="class in org.apache.spark.scheduler">SparkListenerStageSubmitted</a> stageSubmitted)</pre>
<div class="block">When stage is submitted, record stage submit info</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/spark/scheduler/SparkListener.html#onStageSubmitted(org.apache.spark.scheduler.SparkListenerStageSubmitted)">onStageSubmitted</a></code> in interface <code><a href="../../../../org/apache/spark/scheduler/SparkListener.html" title="interface in org.apache.spark.scheduler">SparkListener</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>stageSubmitted</code> - Stage submitted event</dd></dl>
</li>
</ul>
<a name="onStageCompleted(org.apache.spark.scheduler.SparkListenerStageCompleted)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStageCompleted</h4>
<pre>public void onStageCompleted(<a href="../../../../org/apache/spark/scheduler/SparkListenerStageCompleted.html" title="class in org.apache.spark.scheduler">SparkListenerStageCompleted</a> stageCompleted)</pre>
<div class="block">When stage is completed, record stage completion status</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/spark/scheduler/SparkListener.html#onStageCompleted(org.apache.spark.scheduler.SparkListenerStageCompleted)">onStageCompleted</a></code> in interface <code><a href="../../../../org/apache/spark/scheduler/SparkListener.html" title="interface in org.apache.spark.scheduler">SparkListener</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>stageCompleted</code> - Stage completed event</dd></dl>
</li>
</ul>
<a name="onTaskEnd(org.apache.spark.scheduler.SparkListenerTaskEnd)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onTaskEnd</h4>
<pre>public void onTaskEnd(<a href="../../../../org/apache/spark/scheduler/SparkListenerTaskEnd.html" title="class in org.apache.spark.scheduler">SparkListenerTaskEnd</a> taskEnd)</pre>
<div class="block">When task ends, record task completion status and metrics</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/spark/scheduler/SparkListener.html#onTaskEnd(org.apache.spark.scheduler.SparkListenerTaskEnd)">onTaskEnd</a></code> in interface <code><a href="../../../../org/apache/spark/scheduler/SparkListener.html" title="interface in org.apache.spark.scheduler">SparkListener</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>taskEnd</code> - Task end event</dd></dl>
</li>
</ul>
<a name="onJobEnd(org.apache.spark.scheduler.SparkListenerJobEnd)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onJobEnd</h4>
<pre>public void onJobEnd(<a href="../../../../org/apache/spark/scheduler/SparkListenerJobEnd.html" title="class in org.apache.spark.scheduler">SparkListenerJobEnd</a> jobEnd)</pre>
<div class="block">When job ends, recording job completion status and close log file</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/spark/scheduler/SparkListener.html#onJobEnd(org.apache.spark.scheduler.SparkListenerJobEnd)">onJobEnd</a></code> in interface <code><a href="../../../../org/apache/spark/scheduler/SparkListener.html" title="interface in org.apache.spark.scheduler">SparkListener</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>jobEnd</code> - Job end event</dd></dl>
</li>
</ul>
<a name="recordJobProperties(int, java.util.Properties)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recordJobProperties</h4>
<pre>protected void recordJobProperties(int jobId,
java.util.Properties properties)</pre>
<div class="block">Record job properties into job log file</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>jobId</code> - ID of the job</dd><dd><code>properties</code> - Properties of the job</dd></dl>
</li>
</ul>
<a name="onJobStart(org.apache.spark.scheduler.SparkListenerJobStart)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onJobStart</h4>
<pre>public void onJobStart(<a href="../../../../org/apache/spark/scheduler/SparkListenerJobStart.html" title="class in org.apache.spark.scheduler">SparkListenerJobStart</a> jobStart)</pre>
<div class="block">When job starts, record job property and stage graph</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/spark/scheduler/SparkListener.html#onJobStart(org.apache.spark.scheduler.SparkListenerJobStart)">onJobStart</a></code> in interface <code><a href="../../../../org/apache/spark/scheduler/SparkListener.html" title="interface in org.apache.spark.scheduler">SparkListener</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>jobStart</code> - Job start event</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/spark/scheduler/InputFormatInfo.html" title="class in org.apache.spark.scheduler"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/spark/scheduler/JobResult.html" title="interface in org.apache.spark.scheduler"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/spark/scheduler/JobLogger.html" target="_top">Frames</a></li>
<li><a href="JobLogger.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All 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: </li>
<li>Nested | </li>
<li>Field | </li>
<li><a href="#constructor_summary">Constr</a> | </li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li><a href="#constructor_detail">Constr</a> | </li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<script defer="defer" type="text/javascript" src="../../../../lib/jquery.js"></script><script defer="defer" type="text/javascript" src="../../../../lib/api-javadocs.js"></script></body>
</html>