2011-05-16 54 views
2

我正在使用我的reducer将数据输入到MySQL中。 我担心的是,在某些情况下,同一个密钥会同时启动多个reducer。在这种情况下,数据库可能会被相同的数据更新两次。 有没有办法防止这种情况发生?使用Hadoop更新MySQL

在这种情况下关闭SQL连接中的自动提交模式是否合理?

回答

0

我觉得这种情况与自动提交没有任何关系。如果它们不是太多,并且不花费大量的开销,那么忽略它们是因为它们不会破坏一致性。你所有的reducer都在执行SQL查询,你怎么能阻止他们为同一个键执行查询?我认为你应该在你的mapreduce函数中解决这个问题,因为这不是DBMS可以处理的情况,因为它所做的只是在数据库中执行给定的查询。

+0

的问题基本上是由运行在2个减速引起的同样的密钥集...所以唯一可用的其他解决方案可能有一些没有发生......但不知道我是否可以配置hadoop来做到这一点。 – griffin 2011-05-17 00:19:25

0

找到了解决办法...这是关闭推测执行