获取 HBase 表所有者的命令

Posted

技术标签:

【中文标题】获取 HBase 表所有者的命令【英文标题】:Command to get HBase table owner 【发布时间】:2016-06-08 06:47:37 【问题描述】:

有没有命令可以获取hbase表的完整描述,比如所有者、数据库、修改时间等。

在 hive 中,我可以使用

获取这些信息

desc formatted tablename

但在hbase中desc 'tablename'显示大小、版本、replication_scope等

我想获取 hbase 表的所有者详细信息。

谢谢。

【问题讨论】:

你试过desc extended tablename 获取异常“未定义的方法扩展” 你用的hbase是什么版本的?我可以让所有者通过 hbase 1.2.0 运行“desc tablename” 我使用的是 1.1.3 版本。 1.2.0 发布稳定版了吗? @Kumar 是的,你甚至可以下载mirrors.cnnic.cn/apache/hbase/1.2.1,我实际上使用的是cloudera 版本archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.7.0.tar.gz。也许您应该确保在您的服务器端添加访问控制相关的配置。 【参考方案1】:

首先在hbase-site.xml中添加access control相关配置:

   <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.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
   </property>

你可以按照here的说明进行操作,修改后可能需要重启hbase。

然后,设置一张表的所有者,并描述它

hbase(main):007:0> alter 'MyTable', OWNER => 'sel-fish'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 1.9980 seconds

hbase(main):008:0> desc 'MyTable'
Table MyTable is ENABLED
MyTable, TABLE_ATTRIBUTES => METADATA => 'OWNER' => 'sel-fish'
COLUMN FAMILIES DESCRIPTION
NAME => 'cf', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION => 'NONE', VERSIONS => '2147483647', TTL => '500 SECONDS (8 MINUTES 20 SECO
NDS)', MIN_VERSIONS => '0', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'
1 row(s) in 0.0300 seconds

【讨论】:

以上是关于获取 HBase 表所有者的命令的主要内容,如果未能解决你的问题,请参考以下文章

HBase常用命令(超全超详细)

HBase高手之路4-Shell操作

PostgreSQL用啥命令查询所有表名

hbase的基本操作

我们可以从 HBase 表中获取所有列名吗?

hbaseshell命令显示已杀死