| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.pig.tools.pigstats.tez; |
| |
| import org.apache.pig.PigRunner; |
| import org.apache.pig.classification.InterfaceAudience; |
| import org.apache.pig.classification.InterfaceStability; |
| import org.apache.pig.impl.plan.OperatorPlan; |
| import org.apache.pig.tools.pigstats.PigProgressNotificationListener; |
| |
| /** |
| * Should be implemented by an object that wants to receive notifications |
| * from {@link PigRunner}. |
| */ |
| @InterfaceAudience.Public |
| @InterfaceStability.Evolving |
| public abstract class PigTezProgressNotificationListener implements PigProgressNotificationListener { |
| |
| /** |
| * Invoked just before launching a Tez DAG spawned by the script. |
| * |
| * @param scriptId the unique id of the script |
| * @param dagId the unique name of the Tez DAG |
| * @param dagPlan the OperatorPlan that is to be executed |
| * @param numVerticesToLaunch the total number of vertices spawned by the Tez DAG |
| */ |
| public abstract void dagLaunchNotification(String scriptId, String dagId, |
| OperatorPlan<?> dagPlan, int numVerticesToLaunch); |
| |
| /** |
| * Invoked after a Tez DAG is started. |
| * |
| * @param scriptId the unique id of the script |
| * @param dagId the unique name of the Tez DAG |
| * @param assignedApplicationId |
| * the YARN application id for the Tez DAG. More than one Tez DAG |
| * can share same application ID if session reuse is turned on. |
| * Session reuse is turned on by default |
| * |
| */ |
| public abstract void dagStartedNotification(String scriptId, String dagId, String assignedApplicationId); |
| |
| /** |
| * Invoked to update the execution progress. |
| * |
| * @param scriptId the unique id of the script |
| * @param dagId the unique name of the Tez DAG |
| * @param numVerticesCompleted the number of vertices completed so far |
| * @param progress the percentage of the execution progress based on total number of tasks of all vertices |
| */ |
| public abstract void dagProgressNotification(String scriptId, String dagId, int numVerticesCompleted, int progress); |
| |
| /** |
| * Invoked just after the Tez DAGs is completed (successful or failed). |
| * @param scriptId the unique id of the script |
| * @param dagId the unique name of the Tez DAG |
| * @param success true if the Tez DAG was successful, false otherwise |
| * @param tezDAGStats the stats information for the DAG |
| */ |
| public abstract void dagCompletedNotification(String scriptId, String dagId, boolean success, TezDAGStats tezDAGStats); |
| } |