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