如何有效地将hadoop与大型MySQL数据库一起使用?

时间:2014-11-26 18:45:54

标签: mysql hadoop bigdata sqoop

我对hadoop和MapReduce相对较新,但我想用它来分析大量数据。该数据代表约1 GB的棒球统计数据,并且全部存储在MySQL数据库中。我知道hadoop是围绕将代码引入数据而不是相反的思想构建的,因此传统数据库通常不能与hadoop一起使用。但是,我做了一些研究,看起来Sqoop可能满足我的需求。以下是我的一些问题:

  • 是否有足够1 GB的数据来保证使用MapReduce框架?或者它是否足够小以便能够顺序处理?
  • 如何最有效地处理这些数据?我应该使用Sqoop插件还是尝试重组数据?
  • 使用hadoop可以获得什么样的性能提升?

1 个答案:

答案 0 :(得分:1)

如果您能够在一台机器的主存储器中存储和处理所有数据,那么在多台机器之间拆分数据是没有意义的。

关于你在问什么,有讨论here

因此,我认为,MapReduce处理1 GB数据有点过分。您是对的,数据库可以从较大的数据集中选择少量数据(前提是您拥有正确的索引),如果您需要处理所有可用数据,则数据库可能无效。但同样,如果您拥有正确的数据库架构和正确的索引,那么您将能够使用现有的MySQL数据服务器非常有效地分析您的数据。

另一种情况 - 您想学习MapReduce并可能预期更多数据。然后Sqoop真的有意义。