从 mysql 到 Hbase 的近实时同步

Near real time sync from mysql to Hbase

目前我在将数据从 mysql 同步到 hbase 时遇到问题,我需要从 mysql 到 hbase 的近乎实时的数据同步,并且我需要合并多个 mysql tables 到一个 hbase table 在数据同步期间。

我试了sqoop好像不能满足我们的要求

那么,是否有任何现有的 tools/libs 可以用于我的案例,或者我可以尝试使用 spark 的任何其他解决方案。

考虑在 HBase 上使用 Apache Phoenix。它将为您提供对存储在 HBase 中的数据的低延迟 SQL 查询(因此对于 OLTP 是 suitable 并且对于 OLAP 易于使用),因此您不必担心同步。它还具有 NoSQL 功能,例如在查询期间动态添加列的能力。

为了满足您的用例,您可以 运行 Phoenix 用于 OLTP,而 Phoenix 在只读副本上的第二个实例 运行 table 加入 OLAP。

http://www.cloudera.com/documentation/enterprise/5-4-x/topics/admin_hbase_read_replicas.html

Secondary replicas are refreshed at intervals controlled by a timer (hbase.regionserver.storefile.refresh.period), and so are guaranteed to be at most that interval of milliseconds behind the primary RegionServer.

此解决方案满足您对 OLTP、OLAP 和近实时同步的要求,同时为您的事务数据库提供使用 MySQL 无法轻松实现的可扩展性。 Apache Phoenix 还提供与 Hadoop 生态系统的完全集成,因此它将与您当前的分析堆栈很好地集成。