spark sql/hive小文件问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了spark sql/hive小文件问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2847字,纯文字阅读大概需要5分钟。
内容图文
![spark sql/hive小文件问题](/upload/InfoBanner/zyjiaocheng/527/ea73b8313eb94d65919517bbeaf12c36.jpg)
1 2 3 4 |
hive.merge.mapfiles 在 map-only job后合并文件,默认 true
hive.merge.mapredfiles 在map-reduce job后合并文件,默认 false
hive.merge.size.per.task 合并后每个文件的大小,默认256000000
hive.merge.smallfiles.avgsize 平均文件大小,是决定是否执行合并操作的阈值,默认16000000
|
set hive.merge.mapfiles = true:在只有map的作业结束时合并小文件, set hive.merge.mapredfiles = true:在Map-Reduce的任务结束时合并小文件,默认为False; set hive.merge.size.per.task = 256000000; 合并后每个文件的大小,默认256000000 set hive.merge.smallfiles.avgsize=256000000; 当输出文件的平均大小小于该值时并且(mapfiles和mapredfiles为true)2:如果结果表使用了压缩格式,则必须配合Sequence File来存储,否则无法进行合并 3:Hadoop的归档文件格式也是解决小文件问题的方式之一。而且Hive提供了原生支持,如果使用的不是分区表,则可创建成外部表,并使用har://协议来指定路径 4:对于通常的应用,使用Hive结果合并就能达到很好的效果。如果不想因此增加运行时间,可以自行编写一些脚本,在系统空闲时对分区内的文件进行合并,也能达到目的。 5:Reducer数量的减少也即意味着结果文件的减少,从而解决产生小文件的问题。 但是,对于通过sparksql来处理数据的话,在conf里添加上面参数调整是没有作用的,不过可以通过下面的方式来规避小文件: 1.通过使用repartition重分区动态调整文件输出个数 比如 spark.sql("sql").repartition(1).write().mode(SaveMode.Overwrite).saveAsTable("test"); 2.使用Adaptive Execution动态设置shuffle partition
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SparkConf conf = new SparkConf();
conf.set( "spark.sql.adaptive.enabled" , "true" );
conf.set( "spark.sql.adaptive.shuffle.targetPostShuffleInputSize" , "67108864b" );
conf.set( "spark.sql.adaptive.join.enabled" , "true" );
conf.set( "spark.sql.autoBroadcastJoinThreshold" , "20971520" );
SparkSession spark = SparkSession
.builder()
.appName( "JointSitePlan" )
.master( "local" )
.config(conf)
.enableHiveSupport()
.getOrCreate();
|
shuffle partition是通过参数spark.sql.shuffle.partitions来指定的,默认是200,但是对于数据不大,或者数据倾斜的情况,会生成很多的小文件,几兆甚至几KB大小,自适应执行则会根据参数 spark.sql.adaptive.shuffle.targetPostShuffleInputSize 动态调整reducer数量.
附:
我在spark sql执行insert overwrite操作时,仅加了set spark.sql.hive.mergeFiles=true; 也可以有效阻止小文件的产生,可能是因为我的数据量本身就比较大
参考:
https://www.cnblogs.com/zz-ksw/p/11293891.html
https://blog.csdn.net/a2011480169/article/details/100401858
spark sql/hive小文件问题
标签:csdn mod master highlight builder splay tail https ORC
本文系统来源:https://www.cnblogs.com/fnlingnzb-learner/p/13427909.html
内容总结
以上是互联网集市为您收集整理的spark sql/hive小文件问题全部内容,希望文章能够帮你解决spark sql/hive小文件问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。