第94课:Hive性能调优之Mapper和Reducer设置、队列设置和并行执行、JVM重用和动态分区、Join调优等
来源:互联网 发布:java分页怎么实现 编辑:程序博客网 时间:2024/05/01 23:55
为什么要队列设置???
因为Hadoop大数据生态系统上面会运行很多作业,为了更好的管理资源限制的要求Hadoop提出了队列,队列就是不同类型资源分配和使用的标签。
Hadoop的JVM是可以重用的,相当于spark的线程的重用。JVM 重用在有很多小文件的时候非常有用
hive> EXPLAIN select * from employeeforhaving;
OK
STAGE DEPENDENCIES:
Stage-0 is a root stage
STAGE PLANS:
Stage: Stage-0
Fetch Operator
limit: -1
Processor Tree:
TableScan
alias: employeeforhaving
Statistics: Num rows: 1 Data size: 182 Basic stats: COMPLETE Column stats: NONE
Select Operator
expressions: id (type: int), name (type: string), salary (type: string), address (type: string), gender (type: string)
outputColumnNames: _col0, _col1, _col2, _col3, _col4
Statistics: Num rows: 1 Data size: 182 Basic stats: COMPLETE Column stats: NONE
ListSink
hive> EXPLAIN select * from users join ratings on users.userid=ratings.userid;
hive> EXPLAIN EXTENDED select * from users join ratings on users.userid=ratings.userid;
在hive1.2.1中,底层运行Mapper和Reducer的时候,Mapper的个数一般是由splits确定的,而Reducer的个数一般是1;一般调优是调Reducer的个数。
hive> set mapred.reduce.tasks=3;
hive> select * from users join ratings on users.userid=ratings.userid limited 10;
set mapped.queue.name = default;
//Hive 在默认的情况下只会在同一时间执行一个Stage,但是我们可以通过设置hvie.exec.parallel为true来让可以并行的执行stage,从而更好的利用集群的计算资源,加快处理速度;
JVM的重用在Hive性能调优中非常重要,mapred.job.reuse.jvm.num.tasks = 10,也就是说在这个JVM中可以运行10个Mapper,例如运行10个Mapper;如果小文件比较多的话,会对性能有一倍左右的提升。
动态分区
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
动态分区使用插入表达额数据的时候,作为分区的字段也是需要插入的。
Join调优
Hive的Join操作一般问题都是数据倾斜,尤其是在小表(较大)和大表关联的情况下,如果小表比较大,此时可以设置参数,对小表进行broadcast达到map端操作的目的,此时容易产生OOM,此外当小表比较大的时候,网络传小表的时候也是一个非常大的开销。例如说该小表1000w条记录,而大表10亿条记录,这个其实可以通过调整SQL语句解决。提取id和另外的表关联......
- 第94课:Hive性能调优之Mapper和Reducer设置、队列设置和并行执行、JVM重用和动态分区、Join调优等
- 大数据Spark “蘑菇云”行动第94课:Hive性能调优之Mapper和Reducer设置、队列设置和并行执行、JVM重用和动态分区、Join调优
- Hive Mapper和Reducer的设置
- hive-调优笔记:JVM重用,并行执行、调整reducer个数的用处
- hive-调优笔记:JVM重用,并行执行、调整reducer个数的用处
- 大数据Spark “蘑菇云”行动第99课:Hive性能调优之企业级Mapper和Reducer调优深度细节解密 参数配置
- Mapper和Reducer入门程序
- 大数据Spark “蘑菇云”行动第100课:Hive性能调优之企业级Join、MapJoin、GroupBy、Count、数据倾斜彻底解密和最佳实践
- ionic的性能优化和ionic-native-transitions插件的参数调优等
- Hadoop学习之传递命令行参数给Mapper和Reducer
- Hadoop-2.4.1学习之Mapper和Reducer
- Hadoop-2.4.1学习之Mapper和Reducer
- Hadoop-2.4.1学习之Mapper和Reducer
- Hadoop Mapreduce Mapper和Reducer源码
- 多个Mapper和Reducer的Job
- hive学习(4)--- hql语句生成job(包括mapper和reducer)的规则探索
- hive中的动态分区和静态分区
- [hive]动态分区和静态分区
- 笑笑的 H5 风车一枚
- 回显带 forEach 循环的下拉框
- Oracle之物化视图
- SDAutoLayout的使用
- 简单下拉框选项回显
- 第94课:Hive性能调优之Mapper和Reducer设置、队列设置和并行执行、JVM重用和动态分区、Join调优等
- android地区三级联动选择
- 【设计模式】单例模式
- easyui datagird自定义编辑器textbox带按钮
- 【操作系统】连续分配存储管理方式
- 运行 openfire4.04 ServerStarter 报异常 AdminConsolePlugin:192 - An exception occurred while trying to mak
- Linux下的有用命令
- Vivado FIR core修改系数
- java-加密字符串