flume mysql to hbase_Flume将数据从MySQL迁移到Hadoop

5 个答案:

答案 0 :(得分:3)

根据我的理解,Flume不是为了这个。

Flume基本上用于读取数据源(平面文件)等日志,并以结构化方式将它们推送到接收器。

Sqoop可以使用,试一试

http://archive.cloudera.com/cdh/3/sqoop/SqoopUserGuide.html

答案 1 :(得分:0)

你问题的直接答案是肯定的。 Flume被设计为用于事件/日志结构化数据的分布式数据传输和聚合系统。如果设置“正确”,水槽可以推送数据以便在Hadoop中持续摄取。这是当Flume正确设置以从各种来源(在本例中为MySql)收集数据时,我确信如果数据在源处可用,Flume中的接收器将以毫秒级别将其同步到HDFS。一旦HDFS / HBASE上有数据,您就可以对其进行查询,并且可以根据基础设施进行处理。

所以我想说Flume配置对于将数据近乎实时地推送到HDFS非常重要,其余的依赖于你的Map / Reduce集群性能以及如何根据正在处理的数据编写查询。

答案 2 :(得分:0)

我使用flume在HDSF和MySQL中存储数据。对于后者,我使用JDBC com.stratio.ingestion.sink.jdbc.JDBCsink。但我对它的表现并不是很满意。由于您需要从MySQL迁移数据,我建议使用Sqoop。另一个选择是使用Flume将数据发送到MySQL和HBase / Hadoop,因此您不需要从MySQL复制到Hadoop /

答案 3 :(得分:0)

您可以将Hadoop Applier作为MySQL的产品使用,可在此处找到http://labs.mysql.com/

它实时将数据从MySQL传输到HDFS

答案 4 :(得分:0)

实际上,水槽更多地用于收集日志或其他时间序列数据。几乎听不到人们使用水槽将数据从db导入hadoop。

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

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

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

醇>

AFAIK,没有完美的解决方案,如果您更关心实时,添加触发器或使用水槽扫描编辑日志并让您以RT方式更新HBase,这听起来很讨厌我知道。或者使用Sqoop + Oozie,定期将您的源表导入HBase,您不会有RT或甚至近RT响应。到目前为止,鉴于周围没有其他任何东西,我会投票支持水槽定制来源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值