| /** |
| * 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 com.cloudera.sqoop.mapreduce; |
| |
| import java.io.IOException; |
| import java.sql.SQLException; |
| |
| import org.apache.hadoop.conf.Configuration; |
| import org.apache.hadoop.mapreduce.InputFormat; |
| import org.apache.hadoop.mapreduce.Job; |
| import org.apache.hadoop.mapreduce.Mapper; |
| import org.apache.hadoop.mapreduce.OutputFormat; |
| import org.apache.hadoop.util.ReflectionUtils; |
| import org.apache.sqoop.config.ConfigurationHelper; |
| import org.apache.sqoop.manager.ConnManager; |
| import org.apache.sqoop.validation.ValidationContext; |
| import org.apache.sqoop.validation.ValidationException; |
| import org.apache.sqoop.validation.ValidationFailureHandler; |
| import org.apache.sqoop.validation.ValidationThreshold; |
| import org.apache.sqoop.validation.Validator; |
| |
| import com.cloudera.sqoop.SqoopOptions; |
| |
| /** |
| * @deprecated Moving to use org.apache.sqoop namespace. |
| */ |
| @Deprecated |
| public class JobBase |
| extends org.apache.sqoop.mapreduce.JobBase { |
| |
| public JobBase() { |
| super(); |
| } |
| |
| public JobBase(final SqoopOptions opts) { |
| super(opts); |
| } |
| |
| public JobBase(final SqoopOptions opts, |
| final Class<? extends Mapper> mapperClass, |
| final Class<? extends InputFormat> inputFormatClass, |
| final Class<? extends OutputFormat> outputFormatClass) { |
| super(opts, mapperClass, inputFormatClass, outputFormatClass); |
| } |
| |
| protected long getRowCountFromDB(ConnManager connManager, String tableName) |
| throws SQLException { |
| return connManager.getTableRowCount(tableName); |
| } |
| |
| protected long getRowCountFromHadoop(Job job) |
| throws IOException, InterruptedException { |
| return ConfigurationHelper.getNumMapOutputRecords(job); |
| } |
| |
| protected void doValidate(SqoopOptions options, Configuration conf, |
| ValidationContext validationContext) |
| throws ValidationException { |
| Validator validator = (Validator) ReflectionUtils.newInstance( |
| options.getValidatorClass(), conf); |
| ValidationThreshold threshold = (ValidationThreshold) |
| ReflectionUtils.newInstance(options.getValidationThresholdClass(), |
| conf); |
| ValidationFailureHandler failureHandler = (ValidationFailureHandler) |
| ReflectionUtils.newInstance(options.getValidationFailureHandlerClass(), |
| conf); |
| |
| StringBuilder sb = new StringBuilder(); |
| sb.append("Validating the integrity of the import using the " |
| + "following configuration\n"); |
| sb.append("\tValidator : ").append(validator.getClass().getName()) |
| .append('\n'); |
| sb.append("\tThreshold Specifier : ") |
| .append(threshold.getClass().getName()).append('\n'); |
| sb.append("\tFailure Handler : ") |
| .append(failureHandler.getClass().getName()).append('\n'); |
| LOG.info(sb.toString()); |
| validator.validate(validationContext, threshold, failureHandler); |
| } |
| } |