DimensionConverter主要是对维度信息进行操作, 包括维度id的获取、维度信息的保存等操作,通过该接口提供的服务, 我们可以很方便的将操作维度表的方法进行模块化设计。 问题:当设计成为多个reducer的时候,每个reducer的输出是在不同的jvm中的, 所以就会有不同的实例对象进行操作维度表, 可能会导致数据库数据异常,针对这种情况, 故我们需要将DimensionConverter相关服务进行模块化设计。
由于我们采用的是hadoop集群,故我们可以直接采用master-slave结构, 我们自定创建一个hadoop的rpc服务, 然后在各个需要进行该操作的reducer端创建该服务的远程代理对象, 通过这种方式将操作维度表的操作放到一个对象中去。