首页 > 其他分享 >hive local mr转

hive local mr转

时间:2023-04-20 17:33:07浏览次数:36  
标签:10 reduce hive job mr local


在hive中运行的sql有很多是比较小的sql,数据量小,计算量小.这些比较小的sql如果也采用分布式的方式来执行,那么是得不偿失的.因为sql真正执行的时间可能只有10秒,但是分布式任务的生成得其他过程的执行可能要1分钟.这样的小任务更适合采用lcoal mr的方式来执行.就是在本地来执行,通过把输入数据拉回客户端来执行.

拿select 1 from dual来看下,两种执行方式的效率差距.

分布式mr:

hive> select 1 from dual;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there’s no reduce operator
Selecting distributed mode: Input Size (= 10) is larger than hive.exec.mode.local.auto.inputbytes.max (= -1)
Starting Job = job_201208241319_7711163, Tracking URL = http://hdpjt:50030/jobdetails.jsp?jobid=job_201208241319_7711163
Kill Command = /dhwdata/hadoop/bin/../bin/hadoop job  -Dmapred.job.tracker=hdpjt:9001 -kill job_201208241319_7711163
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2012-10-15 13:16:29,825 Stage-1 map = 0%,  reduce = 0%
2012-10-15 13:16:38,044 Stage-1 map = 100%,  reduce = 0%
Ended Job = job_201208241319_7711163
OK
1
Time taken: 15.278 seconds

本地mr:

hive> select 1 from dual;
Automatically selecting local only mode for query
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there’s no reduce operator
Execution log at: /tmp/dwapp/dwapp_20121015131717_eb78662f-2ccd-497c-a7eb-ba9a2234e153.log
Job running in-process (local Hadoop)
Hadoop job information for null: number of mappers: 0; number of reducers: 0
2012-10-15 13:17:28,644 null map = 0%,  reduce = 0%
2012-10-15 13:17:29,646 null map = 100%,  reduce = 0%
Ended Job = job_local_0001
2012-10-15 01:17:29     End of local task; Time Taken: 6.411 sec.
OK
1
Time taken: 7.859 seconds

因为仅仅是换了执行方式,效率提高了一倍.这还不算是差距大的,还遇到过效率差4倍以上的情况,如果jobtracker过忙,或者slots资源比较紧张的时候,这个差距会更大.

所以,合理的使用local mr对性能的提高有非常的提升.

下面两个参数是local mr中常用的控制参数:

1,hive.exec.mode.local.auto.inputbytes.max

设置local mr的最大输入数据量,当输入数据量小于这个值的时候会采用local  mr的方式

2,hive.exec.mode.local.auto.tasks.max

设置local mr的最大输入文件个数,当输入文件个数小于这个值的时候会采用local mr的方式

这个两个条件是与的条件,一定要都满足才可以

标签:10,reduce,hive,job,mr,local
From: https://blog.51cto.com/u_2465818/6210034

相关文章

  • ThreadLocal在Tomcat环境应用问题
    评:ThreadLocal的使用在Tomcat的服务环境下要注意,并非每次web请求时候程序运行的ThreadLocal都是唯一的..ThreadLocal的绳命周期不等于一次Request的绳命周期..ThreadLocal与线程对象紧密绑定的,由于Tomcat使用了线程池,线程是可能存在复用情况...1.ThreadLocal可以用于存放与......
  • MMRotate dev 1.x安装教程
    本文旨在安装mmrotatedev1.x的版本,从源码安装。由于目前官方给定的教程存在错误,此处安装步骤将有所差异。基本环境配置:python 3.8.12torch  1.8.1cuda  10.2显卡1660Ti/3060好像cuda版本存在不同 基......
  • cocoapods Xcode 14.3 Archive Command PhaseScriptExecution failed with a nonzero
    Xcode升级到14.3进行  Archive CommandPhaseScriptExecutionfailedwithanonzeroexitcode解决方法Xcode搜索 source="$(readlink-f"${source}")"将 source="$(readlink-f"${source}")"改为 source="$(readlink-f"......
  • time_t now=time(NULL); std::cout<<ctime(&another_time);tm* ltm = localtime(&now)
    #include<iostream>#include<iomanip>#include<ctime>#include<windows.h>intmain(){time_tnow=time(NULL);tm*ltm=localtime(&now);std::cout<<ctime(&now);std::cout<<"Year:"......
  • Java并发编程:深入剖析ThreadLocal
    Java并发编程:深入剖析ThreadLocal想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。以下是本文目录......
  • [Java并发包学习七]解密ThreadLocal
    相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!看看JDK中的源码是怎么......
  • ERROR 1045 (28000): Access denied for user '-root'@'localhost' (using password:
    以下是cmd的操作(重启服务,修改my.ini文章下面有my.ini配置) 当修改密码为123456是sqlyog连接成功修改为root时连接报老错误,又修改为123456在修改为root就连接正常了MicrosoftWindows[版本10.0.18363.1139](c)2019MicrosoftCorporation。保留所有权利。C:\ProgramFiles......
  • [oeasy]python0133_变量名_标识符_identifier_id_locals
    变量名回忆上次内容上次讲了什么是变量变量变量能变的量就是变量 各种系统、游戏就是由变量所组成的​ 添加图片注释,不超过140字(可选) 声明了变量并且定义了变量 声明就是declaration把标识符和具体值......
  • Windows10系统下Hadoop和Hive环境搭建
    文章部分内容来自:https://www.cnblogs.com/sheng-sjk/p/16186508.html结合实际搭建过程中的问题,对文章进行了优化环境准备软件版本备注Windows10操作系统JDK8暂时不要选用大于等于JDK9的版本,因为启动虚拟机会发生未知异常MySQL8.x用于管理Hive的元数据......
  • Linux开机启动rc.local不生效的一般解决方案
    给rc.local添加可执行权限sudochmod+x/etc/rc.d/rc.localrc-local.service增加install节点配置sudovi/usr/lib/systemd/system/rc-local.service在文件中添加以下内容[Install]WantedBy=multi-user.target启动rc-local服务systemctlstartrc-local设......