我想拥有如下行键是否不好:

用户名时间戳

该行将从MapReduce作业中读取,并将使用Java客户端API放入。同样,将使用STARTROW,ENDROW选择一个子集。

一方面,这对于我的用例来说似乎很方便,因为我可以扫描特定的时间间隔,并且行几乎都是在MR作业之后进行的,而另一方面,我读到避免长的行键和热点是很好的。

这种设计真的有问题吗?如何克服呢?

我是HBase的新手,所以任何帮助都会很棒。

最佳答案

一般建议是避免单调增加行键。为此,某些软件工具在行键中包含所谓的“盐”,该键跨区域散列键。可以在这里找到讨论:http://hbase.apache.org/0.94/book/rowkey.design.html。在这里:https://phoenix.apache.org/salted.html。您还可以查看Apache Trafodion http://trafodion.apache.org/,它使用行键加盐来分发类似SQL的主键。

关于hadoop - HBase行键,其中包含时间戳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33888065/

10-11 07:26