怎样只用scala将hdfs上的小文件按指定大小合并

怎样只用scala将hdfs上的小文件按指定大小合并,第1张

[hadoop@localhost spark-1.2]$ ./spark-submit --class com.util.ScalaHdfs ScalaHdfs.jar

Spark assembly has been built with Hive, including Datanucleus jars on classpath

Configuration: core-default.xml, core-site.xml

list path:/

hdfs://localhost:9000/aaa

hdfs://localhost:9000/bbb

hdfs://localhost:9000/ccc

hdfs://localhost:9000/ddd

hdfs://localhost:9000/count

hdfs://localhost:9000/hbase

hdfs://localhost:9000/tmp

hdfs://localhost:9000/user

hive优化之小文件合并

文件数目过多,会给HDFS带来压力,并且会影响处理效率,可以通过合并Map和Reduce的结果文件来消除这样的影响:

set hive.merge.mapfiles = true ##在 map only 的任务结束时合并小文件

set hive.merge.mapredfiles = false ## true 时在 MapReduce 的任务结束时合并小文件

set hive.merge.size.per.task = 256*1000*1000 ##合并文件的大小

set mapred.max.split.size=256000000##每个 Map 最大分割大小

set mapred.min.split.size.per.node=1##一个节点上 split 的最少值

set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat##执行 Map 前进行小文件合并


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8125502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存