为 Hbase Table 创建拆分的策略。

Strategy to create splits for Hbase Table.

   Can any one suggest me strategies while splitting HBASE table. I have data range starts from [a-z]. 

我将其拆分为 {"e"、"j"、"o"、"u"}。会不会有效率。

你们是如何拆分数据的?

拆分 table 时需要避免热点。例如可以通过加盐来防止。如果您的行分布均匀,那么您的拆分就可以了。

但如果您不控制数据,则最好对行键应用加盐。

我会举出HBase documentation

中的例子

如果您有这样的行:

foo001
foo002
foo003
foo004

然后你的所有行将进入同一个拆分,这将导致热点。

如果您在行的开头添加随机字符串,例如 "e"、"j"、"o" 或 "u",那么加盐很重要,那么您将平均分配您的数据

e-foo002
u-foo003

而且你的数据分布会更均匀。您可以应用随机或确定性加盐,这取决于您,但确定性加盐更好,因为随机加盐会导致棘手的问题。

作为一个(非常)快速的结论:如果你有均匀分布的数据,你的拆分很好,否则最好应用盐处理

编辑:在 SO 的文档中解释这一点可能是个好主意。