I have created a HBase Coprocessor which listens to a table (say TableA). Both Coprocessor setting with HBase and actual TableA creation was done by same user (say UserA). I have a spark job (again run by UserA) which adds data into the TableA. When HBase Coprocessor registers this added data, it starts and fails with the error:
org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user 'UserA' (global, action=ADMIN)
Also, this causes the HBase Region Servers to go down. We have to manually restart these servers again to resume operations on HBase.
Adding the UserA as a HBase ADMIN fixed the issue for now, but its not exactly a good practice.
Functionally, am I missing something with respect to the access controls on the coprocessors or HBase?
What do you mean by "When HBase Coprocessor registers this added data"? Are you doing puts against another table, or creating a table? What is your coprocessor code doing exactly?