将Hive数据导出到文件?

时间:2015-02-19 19:13:00

标签: hadoop mapreduce hive sqoop avro

将Hive数据导出到文件的最佳方法是什么,以便稍后可以使用Sqoop导出它们?我有一些hive表,但我想加入它们并以这种方式将它们导出到文件中我可以使用Sqoop将它们导出到另一个系统。

我可以使用类似的东西:

INSERT OVERWRITE LOCAL DIRECTORY $fileLocation
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
SELECT * from ...... INNER JOIN...... 

所以我的问题是,有更好的方法吗?多少Avro可以加快这个过程?因为我需要稍后使用Sqoop,TEXT& AVRO只是我的选择,对吧?

SET hive.exec.compress.output=true;
set avro.output.codec=snappy;

INSERT OVERWRITE LOCAL DIRECTORY $fileLocation
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS AVRO
SELECT * FROM ..... INNER JOIN...... 

它肯定会压缩文件,但Sqoop需要在导出之前将其解压缩。那么这仍然是一个更好的选择吗?我应该在这里尝试其他任何选择吗?

1 个答案:

答案 0 :(得分:0)

Sqoop可以使用--export-dir Sqoop导出参数直接从Hive表底层的HDFS目录导出Hive数据。

您可以通过在Hive中运行此命令找到映射到Hive表的HDFS目录:

hive> DESCRIBE EXTENDED tablename;
...
...location:hdfs://path/to/the/table/data...
...