001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018
019 package org.apache.hadoop.mapred.lib.db;
020
021 import org.apache.hadoop.classification.InterfaceAudience;
022 import org.apache.hadoop.classification.InterfaceStability;
023 import org.apache.hadoop.mapred.JobConf;
024
025 @InterfaceAudience.Public
026 @InterfaceStability.Stable
027 public class DBConfiguration extends
028 org.apache.hadoop.mapreduce.lib.db.DBConfiguration {
029 /** The JDBC Driver class name */
030 public static final String DRIVER_CLASS_PROPERTY =
031 org.apache.hadoop.mapreduce.lib.db.DBConfiguration.DRIVER_CLASS_PROPERTY;
032
033 /** JDBC Database access URL */
034 public static final String URL_PROPERTY =
035 org.apache.hadoop.mapreduce.lib.db.DBConfiguration.URL_PROPERTY;
036
037 /** User name to access the database */
038 public static final String USERNAME_PROPERTY =
039 org.apache.hadoop.mapreduce.lib.db.DBConfiguration.USERNAME_PROPERTY;
040
041 /** Password to access the database */
042 public static final String PASSWORD_PROPERTY =
043 org.apache.hadoop.mapreduce.lib.db.DBConfiguration.PASSWORD_PROPERTY;
044
045 /** Input table name */
046 public static final String INPUT_TABLE_NAME_PROPERTY = org.apache.hadoop.
047 mapreduce.lib.db.DBConfiguration.INPUT_TABLE_NAME_PROPERTY;
048
049 /** Field names in the Input table */
050 public static final String INPUT_FIELD_NAMES_PROPERTY = org.apache.hadoop.
051 mapreduce.lib.db.DBConfiguration.INPUT_FIELD_NAMES_PROPERTY;
052
053 /** WHERE clause in the input SELECT statement */
054 public static final String INPUT_CONDITIONS_PROPERTY = org.apache.hadoop.
055 mapreduce.lib.db.DBConfiguration.INPUT_CONDITIONS_PROPERTY;
056
057 /** ORDER BY clause in the input SELECT statement */
058 public static final String INPUT_ORDER_BY_PROPERTY = org.apache.hadoop.
059 mapreduce.lib.db.DBConfiguration.INPUT_ORDER_BY_PROPERTY;
060
061 /** Whole input query, exluding LIMIT...OFFSET */
062 public static final String INPUT_QUERY =
063 org.apache.hadoop.mapreduce.lib.db.DBConfiguration.INPUT_QUERY;
064
065 /** Input query to get the count of records */
066 public static final String INPUT_COUNT_QUERY =
067 org.apache.hadoop.mapreduce.lib.db.DBConfiguration.INPUT_COUNT_QUERY;
068
069 /** Class name implementing DBWritable which will hold input tuples */
070 public static final String INPUT_CLASS_PROPERTY =
071 org.apache.hadoop.mapreduce.lib.db.DBConfiguration.INPUT_CLASS_PROPERTY;
072
073 /** Output table name */
074 public static final String OUTPUT_TABLE_NAME_PROPERTY = org.apache.hadoop.
075 mapreduce.lib.db.DBConfiguration.OUTPUT_TABLE_NAME_PROPERTY;
076
077 /** Field names in the Output table */
078 public static final String OUTPUT_FIELD_NAMES_PROPERTY = org.apache.hadoop.
079 mapreduce.lib.db.DBConfiguration.OUTPUT_FIELD_NAMES_PROPERTY;
080
081 /** Number of fields in the Output table */
082 public static final String OUTPUT_FIELD_COUNT_PROPERTY = org.apache.hadoop.
083 mapreduce.lib.db.DBConfiguration.OUTPUT_FIELD_COUNT_PROPERTY;
084
085
086 /**
087 * Sets the DB access related fields in the JobConf.
088 * @param job the job
089 * @param driverClass JDBC Driver class name
090 * @param dbUrl JDBC DB access URL.
091 * @param userName DB access username
092 * @param passwd DB access passwd
093 */
094 public static void configureDB(JobConf job, String driverClass, String dbUrl
095 , String userName, String passwd) {
096
097 job.set(DRIVER_CLASS_PROPERTY, driverClass);
098 job.set(URL_PROPERTY, dbUrl);
099 if(userName != null)
100 job.set(USERNAME_PROPERTY, userName);
101 if(passwd != null)
102 job.set(PASSWORD_PROPERTY, passwd);
103 }
104
105 /**
106 * Sets the DB access related fields in the JobConf.
107 * @param job the job
108 * @param driverClass JDBC Driver class name
109 * @param dbUrl JDBC DB access URL.
110 */
111 public static void configureDB(JobConf job, String driverClass, String dbUrl) {
112 configureDB(job, driverClass, dbUrl, null, null);
113 }
114
115 DBConfiguration(JobConf job) {
116 super(job);
117 }
118
119 }
120