def connect(self): self.transport.open() protocol = TBinaryProtocol(self.transport) service = None if six.PY2: # ThriftClient == ImpalaHiveServer2Service.Client service = ThriftClient(protocol) elif six.PY3: # ThriftClient == TClient # service = ThriftClient(protocol) service = ThriftClient(ImpalaHiveServer2Service, protocol) service = HS2Service(service, retries=3) return hs2.HiveServer2Connection(service, default_db=None)
def connect(host='localhost', port=21050, database=None, timeout=None, use_ssl=False, ca_cert=None, auth_mechanism='NOSASL', user=None, password=None, kerberos_service_name='impala', use_ldap=None, ldap_user=None, ldap_password=None, use_kerberos=None, protocol=None): # pylint: disable=too-many-locals if use_kerberos is not None: warn_deprecate('use_kerberos', 'auth_mechanism="GSSAPI"') if use_kerberos: auth_mechanism = 'GSSAPI' if use_ldap is not None: warn_deprecate('use_ldap', 'auth_mechanism="LDAP"') if use_ldap: auth_mechanism = 'LDAP' if auth_mechanism: auth_mechanism = auth_mechanism.upper() else: auth_mechanism = 'NOSASL' if auth_mechanism not in AUTH_MECHANISMS: raise NotSupportedError( 'Unsupported authentication mechanism: {0}'.format(auth_mechanism)) if ldap_user is not None: warn_deprecate('ldap_user', 'user') user = ldap_user if ldap_password is not None: warn_deprecate('ldap_password', 'password') password = ldap_password if protocol is not None: if protocol.lower() == 'hiveserver2': warn_protocol_param() else: raise NotSupportedError( "'{0}' is not a supported protocol; only HiveServer2 is " "supported".format(protocol)) service = hs2.connect(host=host, port=port, timeout=timeout, use_ssl=use_ssl, ca_cert=ca_cert, user=user, password=password, kerberos_service_name=kerberos_service_name, auth_mechanism=auth_mechanism) return hs2.HiveServer2Connection(service, default_db=database)
def connect(host='localhost', port=21050, database=None, timeout=None, use_ssl=False, ca_cert=None, auth_mechanism='NOSASL', user=None, password=None, kerberos_service_name='impala', use_ldap=None, ldap_user=None, ldap_password=None, use_kerberos=None, protocol=None,username=None): """Get a connection to HiveServer2 (HS2). These options are largely compatible with the impala-shell command line arguments. See those docs for more information. Parameters ---------- host : str The hostname for HS2. For Impala, this can be any of the `impalad`s. port : int, optional The port number for HS2. The Impala default is 21050. The Hive port is likely different. database : str, optional The default database. If `None`, the result is implementation-dependent. timeout : int, optional Connection timeout in seconds. Default is no timeout. use_ssl : bool, optional Enable SSL. ca_cert : str, optional Local path to the the third-party CA certificate. If SSL is enabled but the certificate is not specified, the server certificate will not be validated. auth_mechanism : {'NOSASL', 'PLAIN', 'GSSAPI', 'LDAP'} Specify the authentication mechanism. `'NOSASL'` for unsecured Impala. `'PLAIN'` for unsecured Hive (because Hive requires the SASL transport). `'GSSAPI'` for Kerberos and `'LDAP'` for Kerberos with LDAP. user : str, optional LDAP user, if applicable. password : str, optional LDAP password, if applicable. kerberos_service_name : str, optional Authenticate to a particular `impalad` service principal. Uses `'impala'` by default. use_ldap : bool, optional Specify `auth_mechanism='LDAP'` instead. .. deprecated:: 0.11.0 ldap_user : str, optional Use `user` parameter instead. .. deprecated:: 0.11.0 ldap_password : str, optional Use `password` parameter instead. .. deprecated:: 0.11.0 use_kerberos : bool, optional Specify `auth_mechanism='GSSAPI'` instead. .. deprecated:: 0.11.0 protocol : str, optional Do not use. HiveServer2 is the only protocol currently supported. .. deprecated:: 0.11.0 Returns ------- HiveServer2Connection A `Connection` object (DB API 2.0-compliant). """ # pylint: disable=too-many-locals if use_kerberos is not None: warn_deprecate('use_kerberos', 'auth_mechanism="GSSAPI"') if use_kerberos: auth_mechanism = 'GSSAPI' if use_ldap is not None: warn_deprecate('use_ldap', 'auth_mechanism="LDAP"') if use_ldap: auth_mechanism = 'LDAP' if auth_mechanism: auth_mechanism = auth_mechanism.upper() else: auth_mechanism = 'NOSASL' if auth_mechanism not in AUTH_MECHANISMS: raise NotSupportedError( 'Unsupported authentication mechanism: {0}'.format(auth_mechanism)) if ldap_user is not None: warn_deprecate('ldap_user', 'user') user = ldap_user if ldap_password is not None: warn_deprecate('ldap_password', 'password') password = ldap_password if protocol is not None: if protocol.lower() == 'hiveserver2': warn_protocol_param() else: raise NotSupportedError( "'{0}' is not a supported protocol; only HiveServer2 is " "supported".format(protocol)) service = hs2.connect(host=host, port=port, timeout=timeout, use_ssl=use_ssl, ca_cert=ca_cert, user=user, password=password, kerberos_service_name=kerberos_service_name, auth_mechanism=auth_mechanism) return hs2.HiveServer2Connection(service, default_db=database, impersonate=username)
def connect(host='localhost', port=21050, database=None, timeout=None, use_ssl=False, ca_cert=None, auth_mechanism='NOSASL', user=None, password=None, kerberos_service_name='impala', use_ldap=None, ldap_user=None, ldap_password=None, use_kerberos=None, protocol=None, krb_host=None, use_http_transport=False, http_path='', auth_cookie_names=['impala.auth', 'hive.server2.auth'], retries=3): """Get a connection to HiveServer2 (HS2). These options are largely compatible with the impala-shell command line arguments. See those docs for more information. Parameters ---------- host : str The hostname for HS2. For Impala, this can be any of the `impalad`s. port : int, optional The port number for HS2. The Impala default is 21050. The Hive port is likely different. database : str, optional The default database. If `None`, the result is implementation-dependent. timeout : int, optional Connection timeout in seconds. Default is no timeout. use_ssl : bool, optional Enable SSL. ca_cert : str, optional Local path to the the third-party CA certificate. If SSL is enabled but the certificate is not specified, the server certificate will not be validated. auth_mechanism : {'NOSASL', 'PLAIN', 'GSSAPI', 'LDAP'} Specify the authentication mechanism. `'NOSASL'` for unsecured Impala. `'PLAIN'` for unsecured Hive (because Hive requires the SASL transport). `'GSSAPI'` for Kerberos and `'LDAP'` for Kerberos with LDAP. user : str, optional LDAP user, if applicable. password : str, optional LDAP password, if applicable. kerberos_service_name : str, optional Authenticate to a particular `impalad` service principal. Uses `'impala'` by default. use_ldap : bool, optional Specify `auth_mechanism='LDAP'` instead. use_http_transport: bool optional Set it to True to use http transport of False to use binary transport. http_path: str, optional Specify the path in the http URL. Used only when `use_http_transport` is True. auth_cookie_names: list of str or str, optional Specify the list of possible names for the cookie used for cookie-based authentication. If the list of names contains one cookie name only, a str value can be specified instead of a list. Used only when `use_http_transport` is True. By default 'auth_cookie_names' is set to the list of auth cookie names used by Impala and Hive. If 'auth_cookie_names' is explicitly set to an empty value (None, [], or ''), Impyla won't attempt to do cookie based authentication. Currently cookie-based authentication is only supported for GSSAPI over http. .. deprecated:: 0.11.0 ldap_user : str, optional Use `user` parameter instead. .. deprecated:: 0.11.0 ldap_password : str, optional Use `password` parameter instead. .. deprecated:: 0.11.0 use_kerberos : bool, optional Specify `auth_mechanism='GSSAPI'` instead. .. deprecated:: 0.11.0 protocol : str, optional Do not use. HiveServer2 is the only protocol currently supported. .. deprecated:: 0.11.0 Returns ------- HiveServer2Connection A `Connection` object (DB API 2.0-compliant). """ # pylint: disable=too-many-locals if use_kerberos is not None: warn_deprecate('use_kerberos', 'auth_mechanism="GSSAPI"') if use_kerberos: auth_mechanism = 'GSSAPI' if use_ldap is not None: warn_deprecate('use_ldap', 'auth_mechanism="LDAP"') if use_ldap: auth_mechanism = 'LDAP' if auth_mechanism: auth_mechanism = auth_mechanism.upper() else: auth_mechanism = 'NOSASL' if auth_mechanism not in AUTH_MECHANISMS: raise NotSupportedError( 'Unsupported authentication mechanism: {0}'.format(auth_mechanism)) if ldap_user is not None: warn_deprecate('ldap_user', 'user') user = ldap_user if ldap_password is not None: warn_deprecate('ldap_password', 'password') password = ldap_password if protocol is not None: if protocol.lower() == 'hiveserver2': warn_protocol_param() else: raise NotSupportedError( "'{0}' is not a supported protocol; only HiveServer2 is " "supported".format(protocol)) service = hs2.connect(host=host, port=port, timeout=timeout, use_ssl=use_ssl, ca_cert=ca_cert, user=user, password=password, kerberos_service_name=kerberos_service_name, auth_mechanism=auth_mechanism, krb_host=krb_host, use_http_transport=use_http_transport, http_path=http_path, auth_cookie_names=auth_cookie_names, retries=retries) return hs2.HiveServer2Connection(service, default_db=database)
def connect(host='localhost', port=21050, protocol=None, database=None, timeout=45, use_ssl=False, ca_cert=None, auth_mechanism='NOSASL', user=None, password=None, kerberos_service_name='impala', use_ldap=None, ldap_user=None, ldap_password=None, use_kerberos=None): if use_kerberos is not None: warn_deprecate('use_kerberos', 'auth_mechanism="GSSAPI"') if use_kerberos: auth_mechanism = 'GSSAPI' if use_ldap is not None: warn_deprecate('use_ldap', 'auth_mechanism="LDAP"') if use_ldap: auth_mechanism = 'LDAP' if auth_mechanism: auth_mechanism = auth_mechanism.upper() else: auth_mechanism = 'NOSASL' if auth_mechanism not in AUTH_MECHANISMS: raise NotSupportedError( 'Unsupported authentication mechanism: {0}'.format(auth_mechanism)) if ldap_user is not None: warn_deprecate('ldap_user', 'user') user = ldap_user if ldap_password is not None: warn_deprecate('ldap_password', 'password') password = ldap_password if protocol is None or protocol.lower() == 'hiveserver2': if protocol: warn_deprecate_protocol() service = hs2.connect(host=host, port=port, timeout=timeout, use_ssl=use_ssl, ca_cert=ca_cert, user=user, password=password, kerberos_service_name=kerberos_service_name, auth_mechanism=auth_mechanism) return hs2.HiveServer2Connection(service, default_db=database) if protocol.lower() == 'beeswax': warn_deprecate_hs2() service = beeswax.connect(host=host, port=port, timeout=timeout, use_ssl=use_ssl, ca_cert=ca_cert, user=user, password=password, kerberos_service_name=kerberos_service_name, auth_mechanism=auth_mechanism) return beeswax.BeeswaxConnection(service, default_db=database) raise NotSupportedError("The specified protocol '%s' is not supported." % protocol)
def connect(self): self.transport.open() protocol = TBinaryProtocolAccelerated(self.transport) service = ThriftClient(protocol) service = HS2Service(service, retries=3) return hs2.HiveServer2Connection(service, default_db=None)