首页 > 数据库 > SQL on Hadoop > hive reduce数量计算
hive中将textfile的表数据添加到orc表中,使用sql语句大致如下
insert into orders_orc_idx_f11 select * from orders;
hive客户端数据加载的时候,hdfs底层有多少个数据文件和reduce个数有关,hdfs下的数据文件数等于reduce个数;
trafodion客户端访问hive textfile表加载到orc表,看执行计划启多少esp, hdfs下的数据文件数等于trafodion启动的esp数;
reduce个数可以设置为固定的,也可以设置为灵活的;
固定的设置方法:
方法一:可以再cdh中修改hive配置 mapred.reduce.tasks的数值;
方法二,在hive客户端 set mapred.reduce.tasks = number;临时设置;
灵活的方法:
cdh中设置 mapred.reduce.tasks = -1时,reduce个数是数据文件大小除hive.exec.reducers.bytes.per.reducer得到的结果作为reduce个数;
hive.exec.reducers.bytes.per.reducer:每个reducer的大小,如果设置为64M,输入文件如果是1653M,那么就起26个个reduce;
hive.exec.reduce.max:reduce的最大数,如果在mapred.reduce.tasks设置为负值,那么hive将该值作为reducers的最大可能值。当然还要依赖(输入文件大小/hive.exec.reducers.bytes.per.reducer)所得出的大小,作为reducer的个数,hive默认是1099;
textfile的表数据添加到orc表可参考:http://blog.itpub.net/69985104/viewspace-2758770/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69985104/viewspace-2758788/,如需转载,请注明出处,否则将追究法律责任。