Hadoop 参数小结

来源:互联网 发布:形容心里暗黑的网络语 编辑:程序博客网 时间:2024/06/05 04:47

最近用Hive来将大数据量以大量动态分区形式导入Impala,复杂sql及大数据量导致需要设置很多参数来满足任务要求。甩一下自己用Hive设置过几个参数:

cursor.execute("set mapreduce.map.memory.mb=16384")   //每个maptask分配得到的内存,默认为1024Mcursor.execute("set mapreduce.reduce.memory.mb=16384")//每个reducetask分配得到的内存,默认为1024Mcursor.execute("set mapreduce.map.java.opts=-Djava.net.preferIPv4Stack=true -Xmx12288m") //maptask进程的启动参数cursor.execute("set mapreduce.reduce.java.opts=-Djava.net.preferIPv4Stack=true -Xmx12288m") //reducetask进程的启动参数cursor.execute("set hive.exec.max.created.files=10000000") //过程中允许创建的文件数,最好与下文的hive.merge.mapredfiles结合,以免生成过多小文件cursor.execute('set hive.exec.dynamic.partition.mode=nonstrict') //允许动态分区模式,即无需指定特定插入分区cursor.execute('set hive.merge.mapredfiles=true') //mr过程merge小文件,还有另外一个参数来指定merge文件的大小,默认是一个hdfs块的大小cursor.execute('SET hive.exec.max.dynamic.partitions=100000') //最大动态分区数cursor.execute('SET hive.exec.max.dynamic.partitions.pernode=100000') //每个节点所允许的最大动态分区数
ps. 按道理hive不建议使用大量动态分区,但是用impala来做这个数据量又太可怕,会干掉impalad,所以用了政策。



ubertask相关参数:

mapreduce.job.ubertask.maxmaps 默认为10,mapper小于该值的task满足ubertask条件

mapreduce.job.ubertask.maxreduces 默认为1,reducer小于该值的task满足ubertask条件

mapreduce.job.ubertask.maxbytes 默认为hdfs的一个块的大小,输入分片大小小于该值的满足ubertask条件

mapreduce.job.ubertask.enbale 设置ubertask的开关,false为关闭

Notes.满足ubertask笨拙,则认为该task需要的资源不多,与master在同一JVM完成即可。




0 0
原创粉丝点击