最近我一直在观察我的Accumulo集群上的数据位置,我注意到它似乎随着时间的推移而恶化。我的直觉告诉我,这是由于主机重新分发平板电脑来帮助平衡集群,特别是在我完成滚动重启之后。
我正在考虑设置手动主压缩,以便对我的所有表通宵运行,以使该数据位置尽可能接近100%。这是你们中的任何人以前做过的事情吗?或者有更好的方法来处理这件事吗?
只要您继续向Accumulo写入更多数据,您就会获得"not-quite-100%"的位置测量。当你写更多的数据时,你会导致平板电脑分裂:一个平板电脑变成两个。通常,在拆分后,其中一个子服务器将被移动到另一台服务器,因为这会使Accumulo试图维护的平板电脑的分发无效。在拆分的子平板电脑本身自动进行主压缩之前,您将没有任何位置。实际上,在这一领域,Accumulo可以在平衡平板电脑方面做出更明智的决定,支持HDFS本地化,而不仅仅是在平板电脑服务器上分发平板电脑(但这将是一项重大的努力)。
对于您的情况,考虑在一夜之间(或在您的"非高峰"时间)对cron进行大规模压缩当然并不荒谬。我们甚至可以做一些聪明的事情,创建一个工具来判断表中所有平板电脑的位置,并实际减少低于某个位置阈值(例如<90%本地)的平板电脑的数量,这将有助于避免重新压缩已经是本地的数据。
如果您感兴趣,请随时订阅并发送消息至user@accumulo.apache.org;我很乐意在那里提供更详细的帮助。