将大型数据集从Hive复制到本地目录

时间:2017-11-08 20:45:38

标签: hadoop hive

我试图将数据从配置单元表复制到我的本地目录。 我正在使用的代码是:

nohup hive -e "set hive.cli.print.header=true; set hive.resultset.use.unique.column.names=false; select * from sample_table;" | sed 's/[\t]/|/g'  > /home/sample.txt &

问题是该文件大约为400 GB,并且该过程需要永远完成。

有没有更好的方法,比如在生成文件时压缩文件。

我需要将数据作为.txt文件,但我无法快速解决此问题。

任何聪明的想法都会非常有用。

1 个答案:

答案 0 :(得分:1)

您是否尝试使用-getmerge命令的hadoop选项进行操作?这通常是我用来合并Hive文本表并导出到本地共享驱动器的。

hadoop fs -getmerge ${SOURCE_DIR}/table_name ${DEST_DIR}/table_name.txt

我认为sed命令也会显着降低速度。如果在提取数据之前在Hive中执行字符替换,则会比在边缘节点上运行的单线程sed命令更快。