我们删除了一个HBase表,我想确定这是怎么发生的。 HBase shell是否记录发出的每个命令并将其存储到磁盘?
在$ HBASE_HOME / logs /中,我看到如下文件:
hbase-<my_user>-shell-<hostname>.log.<dt>
但是,所有这些文件的内容只是对以下警告的重复:
INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
答案 0 :(得分:1)
不幸的是,HBase Shell不提供开箱即用的任何形式的日志记录。您可以做一些工作并尝试关联时间,但这可能是一个长镜头,取决于有多少人可以访问以及有多少位置可以访问shell。要删除表,首先必须禁用它,因此如果查看HBase Master日志,您应该同时看到disable和drop。这将至少为您提供一个时间范围,您可以将其与用户登录等进行比较。
如果安装了Ruby,要启用日志记录,可以将以下内容添加到.irbrc:
$ cat .irbrc
require 'irb/ext/save-history'
IRB.conf[:SAVE_HISTORY] = 100
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-save-history"
这需要在每个人的主目录中,或者如果可能的话全局设置。
另一种选择是设置ACL。除非您是特权用户,否则这至少会阻止此类型。有关ACL的详细信息,请参阅http://hbase.apache.org/0.94/book/hbase.accesscontrol.configuration.html。