我们有一个 Accumulo 实例,其中一些表的数据是用我们当前用户都没有的可见性令牌编写的。由于各种原因,我们不知道表中的所有可见性字符串/标记是什么。因此,我们有孤立的数据。他们是 Accumulo 根用户或其他用户确定给定表中数据的可见性字符串的一种方式,而无需他们已经分配了这些令牌?
问问题
439 次
2 回答
3
为了做到这一点,您将不得不直接阅读底层的 RFiles。一种方法是使用附带的 PrintInfo 管理实用程序。因此,作为可以从 HDFS 中读取文件的用户,请运行:
accumulo org.apache.accumulo.core.file.rfile.PrintInfo --dump [hdfs:///path/to/files/xxx.rf]
您必须找到与您的表相对应的文件,可能是通过扫描元数据表中的“文件”列族。但是,具体情况将根据您使用的 Accumulo 版本而有所不同。
于 2014-11-19T19:52:31.277 回答
1
有几种方法,其中大多数涉及编写代码。
- 您可以修改 Accumulo 以禁用可见性过滤(需要修改 VisibilityFilter,一个内置的强制迭代器)。
- 您可以编写一个自定义的主要压缩迭代器,将所有条目的可见性转换为“SUPERUSER|OLDLABEL”之类的东西,然后将“SUPERUSER”授权授予您要检查数据的用户。您还可以编写一个主要的压缩迭代器,它只是将它看到的可见性报告给单独的日志或其他东西,以后可以检查。(需要 alter-table 权限,以及将迭代器添加到类路径的能力)。
- 您可以直接读取文件的内容(需要直接访问底层分布式文件系统;请参阅 RFile Reader 和相关类或其他答案)。
于 2014-11-19T03:15:54.443 回答