MySQL推出Applier,可实时复制数据到Hadoop

jopen 11年前

        MySQL 复制操作可以将数据从一个 MySQL 服务器(主)复制到其他的一个或多个 MySQL 服务器(从)。试想一下,如果从服务器不再局限为一个 MySQL 服务器,而是其他任何数据库服务器或平台,并且复制事件要求实时进行,是否可以实现呢? 

        MySQL 团队最新推出的 MySQL Applier for Hadoop(以下简称 Hadoop Applier)旨在解决这一问题。 

MySQL推出Applier,可实时复制数据到Hadoop

        用途 

        例如,复制事件中的从服务器可能是一个数据仓库系统,如 Apache Hive,它使用 Hadoop 分布式文件系统(HDFS)作为数据存储区。如果你有一个与 HDFS 相关的 Hive 元存储,Hadoop Applier 就可以实时填充 Hive 数据表。数据是从 MySQL 中以文本文件形式导出到 HDFS,然后再填充到 Hive。 

        操作很简单,只需在 Hive 运行 HiveQL 语句'CREATE TABLE',定义表的结构与 MySQL 相似,然后运行 Hadoop Applier 即可开始实时复制数据。 

        优势 

        在 Hadoop Applier 之前,还没有任何工具可以执行实时传输。之前的解决方案是通过 Apache Sqoop 导出数据到 HDFS,尽管可以批量传输,但是需要经常将结果重复导入以保持数据更新。在进行大量数据传输时,其他查询会变得很慢。且在数据库较大的情况下,如果只进 行了一点更改,Sqoop 可能也需要较长时间来加载。 

        而 Hadoop Applier 则会读取二进制日志,只应用 MySQL 服务器上发生的事件,并插入数据,不需要批量传输,操作更快,因此并不影响其他查询的执行速度。 

        实现 

        Applier 使用一个由 libhdfs(用于操作 HDFS 中文件的C库)提供的 API。实时导入的过程如下图所示: 

MySQL推出Applier,可实时复制数据到Hadoop

        数据库被映射作为一个单独的目录,它们的表被映射作为子目录和一个 Hive 数据仓库目录。插入到每个表中的数据被写入文本文件(命名如 datafile1.txt),数据以逗号或其他符号分割(可通过命令行进行配置)。 

MySQL推出Applier,可实时复制数据到Hadoop

        详细信息:MySQL Applier for Hadoop 

        下载地址:mysql-hadoop-applier-0.1.0-alpha.tar.gz(alpha 版本,不可用于生产环境)

来自: www.iteye.com