| /** |
| * 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 org.apache.hcatalog.cli; |
| |
| import java.io.IOException; |
| import java.util.List; |
| import java.util.Map; |
| import java.util.Properties; |
| |
| import org.apache.hadoop.conf.Configuration; |
| import org.apache.hadoop.fs.FileSystem; |
| import org.apache.hadoop.fs.Path; |
| import org.apache.hadoop.hive.metastore.HiveMetaHook; |
| import org.apache.hadoop.hive.metastore.api.Database; |
| import org.apache.hadoop.hive.ql.io.HiveOutputFormat; |
| import org.apache.hadoop.hive.ql.metadata.AuthorizationException; |
| import org.apache.hadoop.hive.ql.metadata.HiveException; |
| import org.apache.hadoop.hive.ql.metadata.Partition; |
| import org.apache.hadoop.hive.ql.plan.TableDesc; |
| import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider; |
| import org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider; |
| import org.apache.hadoop.hive.ql.security.authorization.Privilege; |
| import org.apache.hadoop.hive.serde2.SerDe; |
| import org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe; |
| import org.apache.hadoop.io.Writable; |
| import org.apache.hadoop.io.WritableComparable; |
| import org.apache.hadoop.mapred.InputFormat; |
| import org.apache.hadoop.mapred.InputSplit; |
| import org.apache.hadoop.mapred.JobConf; |
| import org.apache.hadoop.mapred.OutputFormat; |
| import org.apache.hadoop.mapred.RecordReader; |
| import org.apache.hadoop.mapred.RecordWriter; |
| import org.apache.hadoop.mapred.Reporter; |
| import org.apache.hadoop.util.Progressable; |
| import org.apache.hcatalog.data.HCatRecord; |
| import org.apache.hcatalog.mapreduce.HCatStorageHandler; |
| |
| class DummyStorageHandler extends HCatStorageHandler { |
| |
| @Override |
| public Configuration getConf() { |
| return null; |
| } |
| |
| @Override |
| public void setConf(Configuration conf) { |
| } |
| |
| @Override |
| public Class<? extends InputFormat> getInputFormatClass() { |
| return DummyInputFormat.class; |
| } |
| |
| @Override |
| public Class<? extends OutputFormat> getOutputFormatClass() { |
| return DummyOutputFormat.class; |
| } |
| |
| @Override |
| public Class<? extends SerDe> getSerDeClass() { |
| return ColumnarSerDe.class; |
| } |
| |
| @Override |
| public HiveMetaHook getMetaHook() { |
| return null; |
| } |
| |
| @Override |
| public void configureInputJobProperties(TableDesc tableDesc, Map<String, String> jobProperties) { |
| } |
| |
| @Override |
| public void configureOutputJobProperties(TableDesc tableDesc, Map<String, String> jobProperties) { |
| } |
| |
| @Override |
| public HiveAuthorizationProvider getAuthorizationProvider() |
| throws HiveException { |
| return new DummyAuthProvider(); |
| } |
| |
| private class DummyAuthProvider implements HiveAuthorizationProvider { |
| |
| @Override |
| public Configuration getConf() { |
| return null; |
| } |
| |
| /* @param conf |
| * @see org.apache.hadoop.conf.Configurable#setConf(org.apache.hadoop.conf.Configuration) |
| */ |
| @Override |
| public void setConf(Configuration conf) { |
| } |
| |
| /* @param conf |
| /* @throws HiveException |
| * @see org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider#init(org.apache.hadoop.conf.Configuration) |
| */ |
| @Override |
| public void init(Configuration conf) throws HiveException { |
| } |
| |
| /* @return HiveAuthenticationProvider |
| * @see org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider#getAuthenticator() |
| */ |
| @Override |
| public HiveAuthenticationProvider getAuthenticator() { |
| return null; |
| } |
| |
| /* @param authenticator |
| * @see org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider#setAuthenticator(org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider) |
| */ |
| @Override |
| public void setAuthenticator(HiveAuthenticationProvider authenticator) { |
| } |
| |
| /* @param readRequiredPriv |
| /* @param writeRequiredPriv |
| /* @throws HiveException |
| /* @throws AuthorizationException |
| * @see org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider#authorize(org.apache.hadoop.hive.ql.security.authorization.Privilege[], org.apache.hadoop.hive.ql.security.authorization.Privilege[]) |
| */ |
| @Override |
| public void authorize(Privilege[] readRequiredPriv, |
| Privilege[] writeRequiredPriv) throws HiveException, |
| AuthorizationException { |
| } |
| |
| /* @param db |
| /* @param readRequiredPriv |
| /* @param writeRequiredPriv |
| /* @throws HiveException |
| /* @throws AuthorizationException |
| * @see org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider#authorize(org.apache.hadoop.hive.metastore.api.Database, org.apache.hadoop.hive.ql.security.authorization.Privilege[], org.apache.hadoop.hive.ql.security.authorization.Privilege[]) |
| */ |
| @Override |
| public void authorize(Database db, Privilege[] readRequiredPriv, |
| Privilege[] writeRequiredPriv) throws HiveException, |
| AuthorizationException { |
| } |
| |
| /* @param table |
| /* @param readRequiredPriv |
| /* @param writeRequiredPriv |
| /* @throws HiveException |
| /* @throws AuthorizationException |
| * @see org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider#authorize(org.apache.hadoop.hive.ql.metadata.Table, org.apache.hadoop.hive.ql.security.authorization.Privilege[], org.apache.hadoop.hive.ql.security.authorization.Privilege[]) |
| */ |
| @Override |
| public void authorize(org.apache.hadoop.hive.ql.metadata.Table table, Privilege[] readRequiredPriv, |
| Privilege[] writeRequiredPriv) throws HiveException, |
| AuthorizationException { |
| } |
| |
| /* @param part |
| /* @param readRequiredPriv |
| /* @param writeRequiredPriv |
| /* @throws HiveException |
| /* @throws AuthorizationException |
| * @see org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider#authorize(org.apache.hadoop.hive.ql.metadata.Partition, org.apache.hadoop.hive.ql.security.authorization.Privilege[], org.apache.hadoop.hive.ql.security.authorization.Privilege[]) |
| */ |
| @Override |
| public void authorize(Partition part, Privilege[] readRequiredPriv, |
| Privilege[] writeRequiredPriv) throws HiveException, |
| AuthorizationException { |
| } |
| |
| /* @param table |
| /* @param part |
| /* @param columns |
| /* @param readRequiredPriv |
| /* @param writeRequiredPriv |
| /* @throws HiveException |
| /* @throws AuthorizationException |
| * @see org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider#authorize(org.apache.hadoop.hive.ql.metadata.Table, org.apache.hadoop.hive.ql.metadata.Partition, java.util.List, org.apache.hadoop.hive.ql.security.authorization.Privilege[], org.apache.hadoop.hive.ql.security.authorization.Privilege[]) |
| */ |
| @Override |
| public void authorize(org.apache.hadoop.hive.ql.metadata.Table table, Partition part, List<String> columns, |
| Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv) |
| throws HiveException, AuthorizationException { |
| } |
| |
| } |
| |
| /** |
| * The Class DummyInputFormat is a dummy implementation of the old hadoop |
| * mapred.InputFormat required by HiveStorageHandler. |
| */ |
| class DummyInputFormat implements |
| InputFormat<WritableComparable, HCatRecord> { |
| |
| /* |
| * @see |
| * org.apache.hadoop.mapred.InputFormat#getRecordReader(org.apache.hadoop |
| * .mapred.InputSplit, org.apache.hadoop.mapred.JobConf, |
| * org.apache.hadoop.mapred.Reporter) |
| */ |
| @Override |
| public RecordReader<WritableComparable, HCatRecord> getRecordReader( |
| InputSplit split, JobConf jobconf, Reporter reporter) |
| throws IOException { |
| throw new IOException("This operation is not supported."); |
| } |
| |
| /* |
| * @see |
| * org.apache.hadoop.mapred.InputFormat#getSplits(org.apache.hadoop. |
| * mapred .JobConf, int) |
| */ |
| @Override |
| public InputSplit[] getSplits(JobConf jobconf, int number) |
| throws IOException { |
| throw new IOException("This operation is not supported."); |
| } |
| } |
| |
| /** |
| * The Class DummyOutputFormat is a dummy implementation of the old hadoop |
| * mapred.OutputFormat and HiveOutputFormat required by HiveStorageHandler. |
| */ |
| class DummyOutputFormat implements |
| OutputFormat<WritableComparable<?>, HCatRecord>, |
| HiveOutputFormat<WritableComparable<?>, HCatRecord> { |
| |
| /* |
| * @see |
| * org.apache.hadoop.mapred.OutputFormat#checkOutputSpecs(org.apache |
| * .hadoop .fs.FileSystem, org.apache.hadoop.mapred.JobConf) |
| */ |
| @Override |
| public void checkOutputSpecs(FileSystem fs, JobConf jobconf) |
| throws IOException { |
| throw new IOException("This operation is not supported."); |
| |
| } |
| |
| /* |
| * @see |
| * org.apache.hadoop.mapred.OutputFormat#getRecordWriter(org.apache. |
| * hadoop .fs.FileSystem, org.apache.hadoop.mapred.JobConf, |
| * java.lang.String, org.apache.hadoop.util.Progressable) |
| */ |
| @Override |
| public RecordWriter<WritableComparable<?>, HCatRecord> getRecordWriter( |
| FileSystem fs, JobConf jobconf, String str, |
| Progressable progress) throws IOException { |
| throw new IOException("This operation is not supported."); |
| } |
| |
| /* |
| * @see |
| * org.apache.hadoop.hive.ql.io.HiveOutputFormat#getHiveRecordWriter(org |
| * .apache.hadoop.mapred.JobConf, org.apache.hadoop.fs.Path, |
| * java.lang.Class, boolean, java.util.Properties, |
| * org.apache.hadoop.util.Progressable) |
| */ |
| @Override |
| public org.apache.hadoop.hive.ql.exec.FileSinkOperator.RecordWriter getHiveRecordWriter( |
| JobConf jc, Path finalOutPath, |
| Class<? extends Writable> valueClass, boolean isCompressed, |
| Properties tableProperties, Progressable progress) |
| throws IOException { |
| throw new IOException("This operation is not supported."); |
| } |
| |
| } |
| |
| } |
| |
| |