PageRenderTime 16ms CodeModel.GetById 13ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/release-0.0.0-rc0/hive/external/ql/src/java/org/apache/hadoop/hive/ql/exec/errors/ErrorHeuristic.java

#
Java | 59 lines | 7 code | 6 blank | 46 comment | 0 complexity | dfa82d4025d13d06d3cb6e25d35557cd MD5 | raw file
 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
19package org.apache.hadoop.hive.ql.exec.errors;
20
21import org.apache.hadoop.mapred.JobConf;
22
23/**
24 * Classes implementing ErrorHeuristic are able to generate a possible cause and
25 * solution for Hive jobs that have failed by examining the query, task log
26 * files, and the job configuration.
27 *
28 * A class implementing ErrorHeuristic should only detect one type of error.
29 *
30 */
31public interface ErrorHeuristic {
32
33  /**
34   * Initialize this error heuristic. Must be called before any other methods
35   * are called
36   * @param query
37   * @param jobConf
38   */
39  void init(String query, JobConf jobConf);
40
41  /**
42   * Process the given log line. It should be called for every line in the task
43   * log file, in sequence.
44   *
45   * @param line
46   */
47  void processLogLine(String line);
48
49  /**
50   * Examine the hive query, job configuration, and the lines from the task log
51   * seen so far though processLogLine() and generate a possible cause/solution.
52   * Once this method is called, the implementing class should be reset to the
53   * state before any processLogLine() calls were made.
54   *
55   * @return a matching error, or null if a suitable match wasn't found.
56   *
57   */
58  ErrorAndSolution getErrorAndSolution();
59}