【发布时间】:2026-01-04 17:15:01
【问题描述】:
我想在 MapReduce 作业中处理列族中的所有数据。排序并不重要。
一种方法是遍历列族的所有行键以用作输入。这可能是一个潜在的瓶颈,可以用并行方法代替。
我愿意接受其他建议,或者有人告诉我我在浪费时间在这个想法上。我目前正在调查以下内容:
一种可能更有效的方法是将范围分配给输入,而不是遍历所有行键(在映射器启动之前)。由于我使用的是RandomPartitioner,有没有办法根据MD5指定查询范围?
例如,我想将任务拆分为 16 个作业。由于RandomPartitioner 是基于MD5 的(根据我的阅读),我想查询以a 开头的所有内容以获取第一个范围。换句话说,我将如何查询以a 开头并在b 之前结束的MD5 上的get_range。例如a0000000000000000000000000000000 - afffffffffffffffffffffffffffffff?
我正在使用 pycassa API (Python),但我很高兴看到 Java 示例。
【问题讨论】: