I have a web server (a Java application run without using Spark) which presents some data from a Cloudera cluster. The data are stored on HBase and the cluster is secured with Kerberos. When I try to perform a get, the server hangs without logging any error.
So far I've tried:
- Launching the webserver from command line after a kinit (the server is just for testing purpose, so log-in duration and complex procedures to start it are not an issue)
- The runAs approach described in here, both with and without the configuration file import from this answer.
- The CLASSPATH configuration approach described here
- Global authentication with UserGroupInformation.loginUserFromKeytab (with and without all the configurations from point 2 and 3)
I've executed all the gets from hbase shell after kiniting with the web server's user and they work in reasonable time (less than a second, while the last time I left the connection open the server didn't respond in over an hour), so it's not a performance or authorization issue. Inside the same web server, with every configuration listed, I'm able to perform other actions, like connecting to HBase and getting the table instances.
I've also checked the logs from Kerberos, HBase and my web server and none of them presents any error.
After some testing, I've verified that there is a user set right before the call to HBase's API and that said users is authorized to perform the operations I'm trying to execute (at leaste from the shell). Also, I've checked and no calls are made to HBase. So this is not an authentication problem, but something else. Did anybody have the same problem?