在 CentOS 上设置 HBase 权限,通常分为 操作系统层面权限 和 HBase 自身权限管理(ACL / Ranger) 两部分。下面按常见使用场景说明。
HBase 通常以 专用用户 运行,不建议用 root。
useradd hbase
passwd hbase
chown -R hbase:hbase /usr/local/hbase
chown -R hbase:hbase /data/hbase
chmod -R 755 /usr/local/hbase
su - hbase
start-hbase.sh
HBase 支持基于 用户 / 表 / 列族 的权限控制。
编辑 hbase-site.xml:
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.superuser</name>
<value>hbase</value>
</property>
重启 HBase:
stop-hbase.sh
start-hbase.sh
| 权限 | 含义 |
|---|---|
| R | Read |
| W | Write |
| X | Execute |
| C | Create |
| A | Admin |
hbase shell
grant 'user1', 'RW', 'table1'
grant 'user1', 'R', 'table1', 'cf1'
revoke 'user1', 'table1'
user_permission 'table1'
若集群启用 Kerberos:
hbase-site.xml<property>
<name>hbase.security.authentication</name>
<value>kerberos</value>
</property>
kinit user1
如果是 CDH / HDP / CDP,建议用 Ranger:
❌ Permission denied
✅ 检查:
hdfs dfs -ls /hbase
如果你能告诉我:
我可以给你更精确的配置示例。