【问题标题】:Options to Import Data from MySql DB to MapR DB/HBase将数据从 MySql DB 导入 MapR DB/HBase 的选项
【发布时间】: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


【解决方案1】:

使用 HBaseStorageHandler 创建指向 MapRDB 的 Hive 表。您可以使用 sqoop 导入到 hive 表。

如果您已经下载了 MapRFS 数据。使用 hive load 命令将数据加载到 MapRDB。

【讨论】:

  • 我不太确定我是否理解。实际上,我对整个 Hadoop/HBase 生态系统非常陌生。你能解释一下第一个选项吗?对于第二个选项,我可能可以使用 Sqoop 将 MySql 数据转储到 MapR FS。您的建议是使用 Hive load 命令将此 MySql 数据转储从 MapR FS 加载到 MapR DB。不太确定 Hive 在这里的作用。据我所知,Hive 更像是 Hadoop 生态系统中的数据仓库。无论如何,您能否提供任何链接来帮助我了解如何使用 Hive 将数据从 MapR FS/HDFS 导入 MapRDb/HBase。
  • 您可以创建指向 MapRDB 表的 Hive 表,如果您将数据插入到 Hive 表中,它会填充 MapRDB 表。看到这里是集成cwiki.apache.org/confluence/display/Hive/HBaseIntegration
猜你喜欢
  • 1970-01-01
  • 2015-07-27
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多