guilherme0170
guilherme0170

Reputation: 133

Error while running query on Impala with Superset

I'm trying to connect impala to superset, and when I test the connection prints: "Seems OK!", and when I try to see databases on impala with the SQL Editor in the left side it shows all databases without problems.

Preview of Databases/Tables

But when i write a query and click on "Run Query", it gives the error: "Could not start SASL: b'Error in sasl_client_start (-1) SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Ticket expired)'"

Error running query

I'm running superset with SSL and in production mode (with Gunicorn) and Impala with SSL in a Kerberized Hadoop Cluster, and my impala database config is:

Impala Config

And in the extras I put:

{
    "metadata_params": {},
    "engine_params":  {
        "connect_args": {
            "port": 21050,
                    "use_ssl": "True", 
                    "ca_cert": "path/to/my/ca_cert.pem",
                    "auth_mechanism": "GSSAPI"
         }
     },
    "metadata_cache_timeout": {},
    "schemas_allowed_for_csv_upload": []
}

How can I solve this error? In my superset log it only shows:

Triggering query_id: 65
INFO:superset.views.core:Triggering query_id: 65
Query 65: Running query on a Celery worker
INFO:superset.views.core:Query 65: Running query on a Celery worker

Versions: Superset 0.36.0, Impyla 0.16.2

Upvotes: 1

Views: 805

Answers (1)

guilherme0170
guilherme0170

Reputation: 133

I was able to fix this error doing this steps:

1 - Created service user for celery-worker, created a kerberos ticket for him and created a crontab to renew the ticket.

2 - Runned celery worker from this service user, instead running from root.

3 - Killed an celery-worker that was running in another machine of my cluster

4 - Restarted Impala and Superset

I think this error ocurred because in some queries instead of use the celery worker in my superset machine, it was using the celery worker that was in another machine without a valid kerberos ticket. I could fix this error because when I was reading celery-worker log , it showed that a connection with the celery worker in other machine failed in a query running.

Upvotes: 1

Related Questions