美文网首页大数据
Impala--合并小文件

Impala--合并小文件

作者: 撸码小丑 | 来源:发表于2018-11-29 23:14 被阅读28次

    合并小文件

    insert overwrite table ods_user_256_temp select * from ods_user_256;
    set NUM_NODES=1;
    insert overwrite table ods_user_256 select * from ods_user_256_temp;
    

    总结

    1.在设置了NUM_NODES=1后,如果合并的数据量超过Impala默认的Parquet Block Size(256MB)大小时会生成多个文件,每个文件的大小在256MB左右,如果合并的数据量小于256MB则最终只会生成一个文件。
    2.通过设置NUM_NODES=1强制Impala使用一个节点Daemon来处理整个Query,因此最终只会输出一个文件到HDFS。
    3.在使用该配置项时会引起单个主机的资源利用率增加,导致SQL运行缓慢,超出内存限制或查询挂起等。
    4.该参数没办法设置超过1,即无论你有多少台机器,多大数据量,想使用该方法,也只能设置为1,让一台机器来慢慢帮你合并文件,所以该方法不是太实用,仅供参考。

    备注:NUM_NODES参数说明

    该参数用来限制执行查询作业的节点数,常见的场景是用于调试/debug查询的时候。它是一个数值类型,但只有两个值,默认是0即使用所有节点来执行查询,也可以设置为1即所有的查询子任务都会在coordinator节点上个执行。

    如果你在调试某个查询作业,怀疑是因为分布式计算才导致的执行时间较长,可以将NUM_NODES设置为1,从而可以校验同样的作业在单个节点上执行时是否问题依旧存在。当然也可以在执行INSERT或者CREATE TABLE AS SELECT加上这个参数的设置来解决小文件的问题

    相关文章

      网友评论

        本文标题:Impala--合并小文件

        本文链接:https://www.haomeiwen.com/subject/wyscqqtx.html