如何将大型MySQL转储文件导入Hadoop?

4

我需要将维基百科转储(mysql表,未压缩的文件大约占用50GB)导入到Hadoop(hbase)中。现在首先将转储加载到mysql中,然后从mysql传输数据到hadoop。但是将数据加载到mysql中需要大量时间 - 大约4-7天。是否可能直接将mysql转储加载到hadoop中(通过某些转储文件解析器或类似工具)?


你为什么要将数据移入MySQL?你是用它进行进一步处理吗?如果不是,那么有一种方法可以直接将数据放入Hadoop中。我会根据你的回复添加答案。 - Nicole Hu
也许你可以利用 https://sqoop.apache.org/。 - rretzbach
2个回答

2
据我所记,MySQL转储几乎完全是一组插入语句。您可以在映射器中解析它们并按原样处理... 如果您只有少量表,则在Java中硬编码解析应该很容易。

是的,它有效。将7.6亿条记录转换为CSV格式仅需1小时。之后导入到Hadoop或Mongo非常简单。 - hudvin
Hudvin,你能分享一下你的解析.sql转储文件的脚本吗? - Leothorn

1

使用sqoop。这个工具可以使用map reduce作业将mysql数据导入HDFS。

它很方便。


据我所知,这需要数据已经在MySQL中(可通过JDBC访问)。 - hudvin
Sqoop可以从CSV和Avro格式文件中导入数据 - 请参阅http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html#_file_formats - blueberryfields
OP具体谈论的是.sql转储文件。Sqoop能够处理吗? - Leothorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接