1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package org.apache.giraph.job; 20 21 import com.facebook.swift.service.ThriftMethod; 22 import com.facebook.swift.service.ThriftService; 23 24 import org.apache.giraph.counters.GiraphCountersThriftStruct; 25 import org.apache.giraph.master.MasterProgress; 26 import org.apache.giraph.worker.WorkerProgress; 27 28 /** 29 * Interface for job progress tracker on job client 30 */ 31 @ThriftService 32 public interface JobProgressTracker { 33 34 /** Notify JobProgressTracker that mapper started */ 35 @ThriftMethod 36 void mapperStarted(); 37 38 /** 39 * Call this when you want to log an info line from any mapper to command line 40 * 41 * @param logLine Line to log 42 */ 43 @ThriftMethod 44 void logInfo(String logLine); 45 46 /** 47 * Call this when you want to log an error line and exception 48 * object from any mapper to command line 49 * 50 * KryoWritableWrapper.convertFromByteArray can be used to 51 * get exception object back 52 * 53 * @param logLine Line to log 54 * @param exByteArray Exception byte array 55 */ 56 @ThriftMethod 57 void logError(String logLine, byte [] exByteArray); 58 59 /** 60 * Notify that job is failing 61 * 62 * @param reason Reason for failure 63 */ 64 @ThriftMethod 65 void logFailure(String reason); 66 67 /** 68 * Workers should call this method to update their progress 69 * 70 * @param workerProgress Progress of the worker 71 */ 72 @ThriftMethod 73 void updateProgress(WorkerProgress workerProgress); 74 75 /** 76 * Master should call this method to update its progress 77 * 78 * @param masterProgress Progress of the master 79 */ 80 @ThriftMethod 81 void updateMasterProgress(MasterProgress masterProgress); 82 83 /** 84 * Master should call this method after all supersteps are finished, 85 * and send the aggregated counters to the job client 86 * 87 * @param giraphCounters Giraph-based counters 88 */ 89 @ThriftMethod 90 void sendMasterCounters(GiraphCountersThriftStruct giraphCounters); 91 } 92