我有一个棘手的工作,一个单元格可以包含数十万个单元格(数据被分割成按位置+时间键控的行)。对于特定的地点和时间,可能会有很多细胞)。作业处理每个单元格,但当单元格数非常大时,扫描仪会超时。
我可以增加超时,例如hbase.client.scanner.timeout.period,但它们必须是巨大的值(因为单个单元格可能需要200毫秒,所以需要几个小时),这似乎并不理想。
我想我可以使用scan.setallowpartialresults()和scan.setmaxresultsize(),但这只在scan.getfilter().hasfilterrow()为false时有效,在我的例子中不是。我也看到了scanner.setmaxnumrows(),但是我看不到任何从crunch到scanner的方法。
我可以将所有的数据写到一个临时位置,然后在reduce中处理它,但这似乎是错误的。我觉得我一定错过了该怎么做。
一个棘手的工作应该如何处理它必须处理大量细胞而不超时的情况?谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!