2

我想从数据库中导出数据并转换为 Avro + Parquet 格式。Sqoop 支持 Avro 导出,但不支持 Parquet。我尝试使用 Apache Pig、Apache Crunch 等将 Avro 对象转换为 Parquet,但没有任何效果。

Apache pig 给了我“原因:org.apache.hadoop.mapreduce.lib.input.InvalidInputException:输入路径不存在”。但是输入路径存在于该位置。

Apache Crunch 总是抛出:java.lang.ClassNotFoundException: Class org.apache.crunch.impl.mr.run.CrunchMapper not found”,尽管我将它添加到了 Hadoop 库路径中。

将数据从 DB 导出为 Parquet 格式的最佳且简单的方法是什么?

4

3 回答 3

3

我使用蜂巢。

在 Avro 数据上创建一个外部表。创建一个空 Parquet 表。

然后插入覆盖表 PARQUET_TABLE select * from AVRO_TABLE。

超级简单:)

于 2014-05-09T20:39:14.410 回答
2

最新的 sqoop(我认为是 1.4.6)支持导入包含 Parquet 格式数据的文件,也支持导入 Parquet 并创建相关的 Hive 表。

于 2015-01-04T07:44:57.973 回答
0

我能够使用 sqoop1 将 mysql 表转储到 avro 文件中,然后使用 avro2parquet https://github.com/tispratik/avro2parquet转换工具将 avro 文件转换为 parquet 文件。一旦它在镶木地板上,我可以将它上传到 hdfs 并在它上面创建一个蜂巢表。如果运行 0.13 之前的 hive 版本,则需要在 hive 中使用 parquet 插件。Hive 在 0.13 中原生支持 parquet。

于 2014-08-16T21:10:09.557 回答