将数据从MySql导入HDFS的最佳方法

时间:2011-12-28 09:16:43

标签: java sql hadoop mapreduce

我需要知道有没有办法将数据从mysql导入HDFS,我需要提一些条件。

  • 我知道hbase,hive和sqoop可以帮助我,但我不会有任何额外的层次。只是mapreduce和hadoop java api。
  • 我还需要在mySQL中更新数据时更新HDFS。

我需要知道将mysql数据导入HDFS并实时更新的最佳方法。

3 个答案:

答案 0 :(得分:2)

为什么不想使用sqoop - 它会执行您必须执行的操作(打开JDBC连接获取数据,写入hadoop)请参阅hadoop world 09中的this presentation

答案 1 :(得分:0)

您可以使用CDC和Talend进行实时导入。 http://www.talend.com/talend-big-data-sandbox

答案 2 :(得分:0)

是的,您可以通过JDBC连接器和hadoop Java API访问数据库和HDFS。

但是在map-reduce中,在访问数据库时,事情将无法控制。

  • 每个mapper / reducer尝试建立与数据库的单独连接,最终影响数据库性能。
  • 没有任何线索,mapper / reducer执行查询结果集的哪一部分。
  • 如果有一个mapper / reducer访问数据库,那么hadoop并行性将会丢失。
  • 如果任何mapper / reducer失败,则必须实现容错机制。
  • 列表继续......

为了克服所有这些障碍,Sqoop开发用于在RDBMS之间传输数据到HDFS之间。