Mapreduce 如何在从HBase表提取数据时检测映射器中的最后一条记录

Mapreduce 如何在从HBase表提取数据时检测映射器中的最后一条记录,mapreduce,hbase,hadoop2,Mapreduce,Hbase,Hadoop2,我正在尝试从java映射器中的HBase表中读取记录。我想检测最后一条记录以对其执行操作。我们如何识别最后一条记录。我有一个零减速器。我无法在内存中保存所有记录。当映射程序调用其清理方法时,您可以确定映射程序何时处理了其最终记录: cleanup(org.apache.hadoop.mapreduce.Mapper.Context context) 这将使您能够在每个映射器处理其所有键/值并采取某些操作时确定它 如果您试图在不使用reduce阶段的情况下进行聚合,并且您正在从HBase读取数

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

当映射程序调用其清理方法时,您可以确定映射程序何时处理了其最终记录:

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

这将使您能够在每个映射器处理其所有键/值并采取某些操作时确定它


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

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

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

这将使您能够在每个映射器处理其所有键/值并采取某些操作时确定它


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

您可以详细说明一下您的用例吗。你想完成什么。要查找每个映射器中的最后一条记录还是所有映射器的最后一条记录。(当然,这是一种错误的方向)我试图一条一条地读取记录,并通过对记录进行分组来执行聚合。@BalakrishnaD,你的答案并没有真正回答Shyam的问题。我只有一个mapper类,并试图检测我正在读取的HBase表中的最后一条记录。你能详细说明一下你的用例吗。你想完成什么。要查找每个映射器中的最后一条记录还是所有映射器的最后一条记录。(当然,这是一种错误的方向)我试图一条一条地读取记录,并通过对记录进行分组来执行聚合。@BalakrishnaD,你的答案并没有真正回答Shyam的问题。我只有一个mapper类,并试图检测我正在读取的HBase表中的最后一条记录。我重写了cleanup方法,它起了作用。谢谢@Binary NerdI,我已经重写了清理方法,它成功了。谢谢@Binary Nerd