如何使用flume从mysql读取数据?

时间:2012-10-02 12:15:55

标签: mysql hadoop hbase flume

如何使用flume从mysql连续读取加载到hbase?

我熟悉sqoop但我需要从mysql源继续这样做。 是否需要有自定义源来执行此操作?

2 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,但我会编写一个脚本,从MySQL获取数据并为每个生成Avro事件。

然后,您可以使用内置的Avro源接收此数据,并将其发送到HDFS接收器。

答案 1 :(得分:0)

Sqoop适用于从RDBMS到HDFS / Hive / HBase的批量导入。如果它只是一次导入,它非常好,它做了它在纸上的承诺。但是,当您想要实时增量更新时,问题就出现了。在Sqoop支持的两种类型的增量更新之间:

附加,这个允许您重新运行sqoop作业,并且每个新作业都从最后一个旧作业结束的地方开始。例如。第一个sqoop作业只导入行0-100,然后下一个作业将从101开始 - 基于--last-value = 100。但即使0-100已更新,附加模式也不会再覆盖它们了。

最后修改过,这个更糟糕的是恕我直言,它要求源表有一个时间戳字段,表示该行何时上次更新。然后根据时间戳,它执行增量更新导入。如果源表没有这样的东西,那么这个没用。

我会说,如果您确实掌握了源数据库,可以使用Sqoop进行最后修改模式。