将数据从MySQL拉入Hadoop

我刚刚开始学习Hadoop,我想知道以下内容:假设我有一堆我想分析的大型MySQL生产表.

>似乎我必须将所有表转储到文本文件中,以便将它们带入Hadoop文件系统 – 这是正确的,还是有某种方式可以让Hive或Pig或其他任何东西直接从MySQL访问数据?
>如果我将所有生产表转储到文本文件中,我是否需要担心在转储期间影响生产性能? (它取决于表所使用的存储引擎吗?如果是这样我该怎么办?)
>将每个表转储到单个文件中,或将每个表拆分为64mb(或我的块大小)文件是否更好?
最佳答案
从mysql导入数据非常容易.我建议你使用Cloudera的hadoop发行版,它带有名为’sqoop’的程序,它提供了非常简单的接口,可以直接从mysql导入数据(也支持其他数据库).
Sqoop可以与mysqldump或普通的mysql查询一起使用(select * …).
使用此工具,无需手动将表分区为文件.但对于hadoop来说,拥有一个大文件要好得多.

有用的链接:
Sqoop User Guide

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注