【问题标题】:Unable to create table in Hbase无法在 Hbase 中创建表
【发布时间】:2015-08-01 21:13:41
【问题描述】:

我正在尝试使用以下命令在 Hbase 命名空间中创建表,但遇到权限问题。

hbase(main):010:0> create 'hbasetest:my_table', 'fam'

ERROR: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user 'qjdht' (global, action=CREATE)

我授予用户“qjdht”权限。

hbase(main):003:0> grant '@hbasetest', 'RWXCA', '@hbasetest'

0 row(s) in 0.8160 seconds

用户 qjdht 是组 hbasetest 的成员,但我仍然遇到同样的权限问题。

【问题讨论】:

  • 尝试检查 - user_permission 'tablename'
  • 我无法创建表。如何检查 user_permission 'tablename' ?

标签: hbase access-control


【解决方案1】:

在 shell 中,您可以发出命令 user_permission 'tablename'。但由于您一开始无法创建它,因此您无法使用它。

试试这个create 'my_table', 'fam'。我想无论如何都会使用用户名。一旦您授予权限并创建表,Hbase 应该处理权限并允许您执行操作

如果问题仍然存在,超级用户应该授予权限。因此,当您授予许可时,它可能不会接受它。您可以要求您的管理员授予访问权限

希望其中一个步骤可行。请发布结果

【讨论】:

  • 管理员已授予我权限,但它不能在命名空间级别上工作......也在上面的错误中显示全局范围,而我正在命名空间中创建表..如果你可以建议一些东西吗?
  • 那么您是否仍然遇到与问题相同的错误?类似的错误参考是here。根据您的用例,查看任何事物是否匹配。 documentation 通常提供更多信息。在授予权限时,在您的问题中,我看到您授予组名 hbasetest 和名称空间 hbasetest,因为授予中的最后一件事是名称空间。我希望你可以看看那里
  • admin 授予我grant 'username','RWXCA' 这有效为什么命名空间级别授予不起作用?
  • 好。您提供的命名空间又是 hbasetest。但是您需要在那里提供正确的名称空间。我希望解决方案有效。您能否接受解决方案。谢谢
  • 它不起作用..我正在寻找命名空间级别的授权..命名空间名称是正确的
【解决方案2】:

你的hbase是什么版本的?您可能对以下链接感兴趣

https://issues.apache.org/jira/plugins/servlet/mobile#issue/HBASE-12098

这是一个已知问题,在 0.98.7+ 版本中可用。

希望这些信息对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 2017-12-05
    • 2015-03-13
    • 2016-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    相关资源
    最近更新 更多