使用 Cassandra 1.1,是否可以有一个从列族 X 读取的 Hadoop 作业,并同时对其进行“更新”。也就是说,将 X 指定为输入列族,然后
- 在映射步骤中,更新到相同的 CF(例如通过 Hector)。
- 或者如果 #1 不可能,在 reduce 步骤中更新到相同的 CF(直接通过 Hector,或者通过将 CF 指定为输出列族)。
我们正在尝试做的是:我们有(可能非常宽)要读取的行。在 map() 方法中,我们遍历该行的列,并且随着每一列的处理,我们不再需要该列,因此我们计划通过在 Cassandra 中使用 TTL = 1 秒更新它来“过期”它。
如果在 map 步骤中这样做是不可能或不可取的,那么我们准备在 reduce 步骤中这样做。但是,我们更喜欢在 map 步骤中执行此操作,因为在 reduce 步骤中执行此操作意味着我们需要为 reduce() 方法提供足够的信息来识别我们试图过期的 row+col。这意味着我们的地图步骤需要在其输出中包含此信息,如果可能的话,我们会尽量避免这种情况。
再说一遍,是否可以使用 #1 或 #2 来做到这一点?