我有一个HBase查找表,我存储了一些信息。我有一个MapReduce程序运行一些Pentaho KTR,在MapReduce作业中我捕获输出。从KTR输出中的某些字段,我检索一些键并使用它们,我必须在HBase中查找一些值。我的情况是:
1. The rowkey is of format <Table Code>-<CRC>, ex- DDVC-XXX
For each output of the KTRs:
2. If no result is found for a particular key(which I get from the Pentaho KTRs),
then increment a column value which has the rowkey of format
<Table Code>-last, ex: DDVC-last
3. Take this incremented value and put it in the HBase table with the specific key.
所以,如果我找不到rowkey的值,我在这里做一个Get,一个Increment和一个Put操作。有人可以给我一些关于如何有效地做到这一点的建议,而不是再次打击HBase。因为,我可以看到作业所需的大部分时间是执行上述算法,该算法在单行中多次击中HBase。
提前致谢。!!
答案 0 :(得分:0)
尽管架构设计可能值得关注,但您所描述的问题可能无法在性能方面得到进一步改善。 Get,Increment和Put是单独的操作,需要三个单独的HBase调用。