Apache Hbase: API Client fails with “No common protection layer between client and server”
Symptom:
When a client tries to connect to the Hbase server and fails with the below exception
INFO org.apache.hadoop.hbase.client.RpcRetryingCallerImpl - Call exception, tries=4, retries=9, started=5060 ms ago, cancelled=false, msg=Call to <Region host>:<region port> failed on local exception: javax.security.sasl.SaslException: No common protection layer between client and server
Root Cause:
“SaslException: No common protection layer between client and server” shows a difference in the server-side configuration vs client-side configuration.
example: client configuration “hadoop.rpc.protection” should be exactly match the server side configuration
hadoop.rpc.protection can either be set as the below value and it should match client and server config
hadoop.rpc.protection
- authentication : authentication only (default)
- integrity : integrity check in addition to authentication
- privacy : data encryption in addition to integrity
Solution:
Recommendation is to Download latest hbase-site.xml from the server and compare it with the client configuration
For the cluster managed by Cloudera Manager:
Download the config from CM -> instance -> Hbase master -> processes -> hbase-site.xml
For other clusters:
SSH to Hbase master -> processes directory -> Latest Hbase master process dir -> get the hbase-site.xml
Ideally, hbase-site.xml should match all the property and it value (especially hbase.rpc.protection) between the client and the server
Good Luck with your Learning