3
我们有多个HBase的表:A,B,C。让我们假设,A是记录队列中需要处理。它可以包含平均2500万条记录。 A有用户ID。 B有每个用户执行的网站点击率。 B可能包含数十亿行。 C有一些关于用户的辅助信息。
我们使用MapReduce作业对队列中的记录执行预测性分析(成千上万的决策树)。这些问题的范围不包括实际的分析建模。
问题
- MR作业执行即席查询的表b & C.例如,地图任务1进行查询,以获得用户1安打,地图任务2执行查询来获取命中为用户2。如果这些命中在同一个区域服务器中结束,是否会妨碍性能(比赛条件等)?是否有像ChainMapper(ChainReducer)这样的模式来分割输入集,以便每个映射器都具有跨越一个区域服务器的键?
- 我最初的想法是让队列包含所有必需的输入(来自b和c的结果)。这个输入将被压缩(只有建模需要)。这种方法将避免在同一时间内通过多个地图任务执行特别查询(跨地区服务器)。
欢迎任何其他建议。
我们正在使用cloudera CDH 3(hadoop,hbase)。
是的分析工作减少。 – satish