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

Similar Posts