从 HBase 获取数据时如何检测映射器中的最后一条记录 Table

How to detect last record in mapper while fetching data from HBase Table

我正在尝试在我的 java 映射器中从 HBase table 读取记录。我想检测最后一条记录以对其执行操作。我们如何识别最后一条记录。我有一个零减速器。我无法将所有记录保存在内存中。

您可以确定映射器何时在调用其清理方法时处理了其最终记录:

cleanup(org.apache.hadoop.mapreduce.Mapper.Context context)

https://hadoop.apache.org/docs/r2.6.2/api/org/apache/hadoop/mapreduce/Mapper.html

这将使您能够确定 per-mapper 何时处理完其所有 key/values 并采取一些行动。

如果您尝试在不使用缩减阶段的情况下进行聚合,并且您正在从 HBase 读取数据,我会假设您对数据分组有一些保证,这也会有所帮助。例如,您可以查找进入映射器的密钥更改,并且您会知道您收到了所有相同的密钥。