【发布时间】:2016-08-30 05:51:24
【问题描述】:
我在 MySql 中有一个表,其中包含大约 24000000 条记录。我需要一种将这些数据导入 MapR DB 中具有多个列族的表的方法。我最初选择 Sqoop 作为导入数据的工具,但后来发现我无法使用 Sqoop 直接导入数据,因为 Sqoop 尚不支持多列族导入。 我使用 MySql 数据库中的 Sqoop 填充了 MapR FS 中的数据。 将这些数据从 MapR FS 导入到具有 3 个列族的 MapR DB 表中,我有哪些选择? 看来批量导入,我有两种选择:
- ImportTSV 工具:这可能需要源数据为 TSV 格式。但是我使用 Sqoop 从 MySql 导入 MapR FS 的数据似乎是 CSV 格式。这种方法的标准解决方案是什么?
- 编写自定义 Map Reduce 程序,将 MapR FS 中的数据转换为 HFile 并将其加载到 MapR DB 中。
我只是想确保只有这两个选项可用于加载数据。考虑到这样的要求在任何系统中都是非常基本的要求,这似乎有点限制。 如果自定义 Map Reduce 是可行的方法,那么示例或工作示例将非常有帮助。
【问题讨论】:
-
你对Spark有一些了解吗?您想直接导入还是可能使用一些临时 hdfs 存储?我正在开展一个将数据从 Oracle 复制到 Hdfs 的项目,并且我有一个工作 spark 作业,它从初始快照生成 HFiles(使用 sqoop 从 Oracle 转储的 hdfs 上的 Avro 文件)。
-
您的主要问题是您需要生成 hfiles,我试图找到一个可行的解决方案,但我没有找到它,所以我编写了自定义解决方案。
-
我还没有在 Spark 上工作。所以到目前为止,这对我来说可能不是最好的方法。但我一定会记住这一点。如果我想从 mysql 数据中填充 HBase/MapR DB,自定义 Map Reduce 作业是唯一的解决方案吗?
标签: hadoop mapreduce hbase sqoop mapr