|
@@ -12,7 +12,7 @@ class HiveDS(DataSourceBase):
|
|
|
def __init__(self, host, port,database_name,\
|
|
|
username=None, password=None, kerberos=0, \
|
|
|
keytab=None, krb5config=None, kerberos_service_name=None, \
|
|
|
- principal=None, type='hive'):
|
|
|
+ principal=None, type='hive', path_type='minio'):
|
|
|
DataSourceBase.__init__(self, host, port, username, password, database_name, type)
|
|
|
self.host = host
|
|
|
self.port = port
|
|
@@ -24,6 +24,7 @@ class HiveDS(DataSourceBase):
|
|
|
self.krb5config = krb5config
|
|
|
self.kerberos_service_name = kerberos_service_name
|
|
|
self.principal = principal
|
|
|
+ self.path_type = path_type
|
|
|
|
|
|
|
|
|
@property
|
|
@@ -45,8 +46,12 @@ class HiveDS(DataSourceBase):
|
|
|
if self.kerberos == 0:
|
|
|
conn = hive.Connection(host=self.host, port=self.port, username=self.username, database=self.database_name)
|
|
|
else:
|
|
|
- get_kerberos_to_local(self.keytab)
|
|
|
- file_name = './assets/kerberos/'+self.keytab.split("/")[-1]
|
|
|
+ file_name = ''
|
|
|
+ if self.path_type == 'minio':
|
|
|
+ get_kerberos_to_local(self.keytab)
|
|
|
+ file_name = './assets/kerberos/'+self.keytab.split("/")[-1]
|
|
|
+ else:
|
|
|
+ file_name = self.keytab
|
|
|
os.system(f'kinit -kt {file_name} {self.principal}')
|
|
|
conn = hive.Connection(host=self.host, database=self.database_name, port=self.port, auth="KERBEROS", kerberos_service_name=self.kerberos_service_name)
|
|
|
|