Reply
Highlighted
Contributor
Posts: 35
Registered: ‎04-07-2016
Accepted Solution

impala-shell -k with ha proxy not working

Hi, 
I have a imapala cluster with kerberos and HA proxy, and everything works fine when I connect using impyla.

But when I do a  (after a kinit)
 impala-shell -k

connect myHaproxy:21051;
I get :

Error: Unable to communicate with impalad service. This service may not be an impalad instance. Check host:port and try again.
Traceback (most recent call last):
  File "/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/bin/../lib/impala-shell/impala_shell.py", line 1554, in <module>
    shell.cmdloop(intro)
  File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
    stop = self.onecmd(line)
  File "/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/bin/../lib/impala-shell/impala_shell.py", line 563, in onecmd
    return cmd.Cmd.onecmd(self, line)
  File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
    return func(arg)
  File "/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/bin/../lib/impala-shell/impala_shell.py", line 717, in do_connect
    self._connect()
  File "/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/bin/../lib/impala-shell/impala_shell.py", line 764, in _connect
    result = self.imp_client.connect()
  File "/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/impala-shell/lib/impala_client.py", line 245, in connect
    result = self.ping_impala_service()
  File "/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/impala-shell/lib/impala_client.py", line 250, in ping_impala_service
    return self.imp_service.PingImpalaService()
  File "/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/impala-shell/gen-py/ImpalaService/ImpalaService.py", line 223, in PingImpalaService
    return self.recv_PingImpalaService()
  File "/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/impala-shell/gen-py/ImpalaService/ImpalaService.py", line 238, in recv_PingImpalaService
    raise x
thrift.Thrift.TApplicationException: Invalid method name: 'PingImpalaService'

any idea why?

thanks

Expert Contributor
Posts: 133
Registered: ‎01-08-2018

Re: impala-shell -k with ha proxy not working

Does impyla connect with Kerberos authentication, or LDAP?

Connection through HAProxy using LDAP authentication works fine. But in order to use Kerberos authentication, you have to configure your "myHaproxy:21051" as Load Balancer in impala's configuration.

https://www.cloudera.com/documentation/enterprise/latest/topics/impala_proxy.html#proxy_kerberos

Contributor
Posts: 35
Registered: ‎04-07-2016

Re: impala-shell -k with ha proxy not working

Hi, 
Impyla connect using kerberos, we are not using ldap. 
I have configured the Load Balancer as stated in the docs, but still have the same error.

 

thanks

Expert Contributor
Posts: 133
Registered: ‎01-08-2018

Re: impala-shell -k with ha proxy not working

Sorry, I didn't notice before.

Impyla uses the port 21050 to connect to Impala. This port is also used for JDBC connection. Probably in your HAProxy, you have configured port 21051 in front.

"impala-shell", on the other hand, uses the default port "21000" to connect to impala. So you have to configure an additional block in your HAProxy configuration, to forward that port as well.

 

You can refer to https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_ports_impala.html .

Contributor
Posts: 35
Registered: ‎04-07-2016

Re: impala-shell -k with ha proxy not working

Worked !
thanks

Announcements