建各企业网站多少钱,权重域名做网站有用么,360搜索建站,网站宣传的方法主要有合理设置参数#xff0c;让集群飞起来~ 参数缺省值描述可单独使用set hive.execution.enginetez; 设置hive的计算引擎可单独使用set mapreduce.map.memory.mb4096; 设置每个map的内存可单独使用set mapreduce.reduce.memory.mb4096; 设置每个reduce的内存可单独使用set map…合理设置参数让集群飞起来~ 参数缺省值描述可单独使用set hive.execution.enginetez; 设置hive的计算引擎可单独使用set mapreduce.map.memory.mb4096; 设置每个map的内存可单独使用set mapreduce.reduce.memory.mb4096; 设置每个reduce的内存可单独使用set mapreduce.map.java.opts-Xmx13106M; 这个 Java 程序可以使用的最大堆内存数一定要小于mapreduce.map.memory.mb可单独使用mapreduce.reduce.java.opts 可以使用的最大堆内存数一定要小于mapreduce.reduce.memory.mb可单独使用set hive.cli.print.headertrue; 辅助设置-打印表头可单独使用set hive.cli.print.current.dbtrue; 辅助设置-显示当前数据库可单独使用set hive.exec.paralleltrue; 开启任务并行执行可单独使用set hive.exec.parallel.thread.number8; 同一个sql允许并行任务的最大线程数联合使用set hive.exec.dynamic.partitiontrue;FALSE设置成true, 表示开启动态分区功能set hive.exec.dynamic.partition.modenonstrict;strict设置成nonstrict, 表示允许所有分区都是动态的set hive.exec.max.dynamic.partitions.pernode1000;100每个mapper或reducer可以创建的最大动态分区个数如果某个mapper或reducer尝试创建大于这个值的分区的话则会知出一个致命错误set hive.exec.max.dynamic.partitions1000;1000一个动态分区创建语句可以创建的虽大动态分区个数如果超过这个佳则会抛出—个致命错误hive.exec.max.created.files100000全局可以创建的最大文件个数有一个Hadoop计数器会跟踪记录创速了多少个文件可单独使用set mapred.reduce.tasks100; 设置reduce数量 mapper数量:reduce数量 10:1可单独使用set hive.exec.reducers.bytes.per.reducer500000000; 500M 设置每个reduce处理数据量默认1G联合使用set mapred.max.split.size256000000; 每个Map最大输入大小间接设置map个数默认256M就比较好。set mapred.min.split.size100000000; 每个Map最小输入大小set mapred.min.split.size.per.node100000000; 一个节点上split的至少的大小set mapred.min.split.size.per.rack100000000; 一个交换机下split的至少的大小 set hive.input.format org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; 执行Map前进行小文件合并前面参数确定合并文件块的大小可单独使用set hive.merge.mapfilestrue; 在Map-only的任务结束时合并小文件可单独使用set hive.merge.mapredfiles true; 在Map-Reduce的任务结束时合并小文件可单独使用set mapreduce.job.reduce.slowstart.completedmaps0.90.8reduce任务从map完成80%后开始执行 集群默认0.8大部分比较小的job都是适合的对于map比较重的大job这个值可以适当调大比如0.9可单独使用set hive.exec.reducers.bytes.per.reducer500000000;1000000000每个reduce处理的数据量间接设置reduce的个数可单独使用set hive.exec.reducers.max999 设置最大reduce的个数可单独使用set mapred.reduce.tasks10 直接设置reduce的个数reduce个数并不是越多越好Order by时只有一个reduce
如果你懒得看上文推荐一套参数设置 set hive.execution.enginetez; set mapreduce.map.memory.mb8192; set mapreduce.reduce.memory.mb8192; set hive.exec.reducers.max999; set hive.exec.reducers.bytes.per.reducer500000000;
开动态分区时设置 set hive.exec.dynamic.partitiontrue; set hive.exec.dynamic.partition.modenonstrict; set hive.exec.max.dynamic.partitions.pernode1000; set hive.exec.max.dynamic.partitions1000;
【小编废话】
在日常开发中还需要结合集群的实际情况任务的差异性结合任务日志针对性的调整参数两个原则
原则1当资源紧张时重要任务优先需结合调度时间优化。
原则2在保证原则1的前提下提升整个集群的效率。当时效要求高时尽量压缩总体运行时间当稳定性要求更高时错峰执行负载均衡。 参数调优核心总结为两个字平衡。
1、时效和稳定性的平衡
2、资源的平衡在某一时间点集群的内存、io、cpu等负载均衡。