`

hive local mr转

阅读更多

在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的方式

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

分享到:
评论

相关推荐

    Hive用户指南(Hive_user_guide)_中文版.pdf

    查询计划被转化为 MapReduce 任务,在 Hadoop 中执行(有些查询没有 MR 任 务,如: select * from table ) Hadoop和 Hive 都是用 UTF-8 编码的 7 1.3Hive 和普通关系数据库的异同 Hive RDBMS 查询语言 HQL ...

    hadoop hive入门学习总结

    如果在查询时遇到“FAILED: Hive Internal Error: java.lang.RuntimeException(Error while making MR scratch directory - check filesystem config (null))”,这通常是由于Hadoop配置问题导致的。解决方法如下: ...

    Hadoop Hive入门学习笔记.pdf

    如果出现错误提示 `FAILED:HiveInternalError:java.lang.RuntimeException(Error while making MR scratch directory - check filesystem config(null))`,则需要检查 Hadoop 的配置文件 `core-site.xml` 中的 IP ...

    Hive脚本任务参数优化配置.doc

    #### 二、Hive MR参数调优 1. **谓词下推(Predicate Push Down)**: - `set hive.optimize.ppd=true;` 开启谓词下推功能。谓词下推是一种优化技术,它将查询条件尽可能地推送到数据源层进行过滤,从而减少不必要...

    hive操作.docx

    在Hive操作中,我们经常会遇到各种需求,如设置队列、修改表结构以及数据处理等。以下是对这些知识点的详细说明: 1. **设置使用大队列**:在Hive中,可以设置MapReduce作业使用的队列。例如,如果你想让所有的SQL...

    Hive编程指南.pdf

    - **加载数据**:LOAD DATA [LOCAL] INPATH 'data_path' INTO TABLE table_name; - **查询数据**:SELECT column1, column2 FROM table_name WHERE condition; - **JOIN操作**:支持INNER JOIN, LEFT JOIN, RIGHT...

    Hive常见异常处理.docx

    在Hive中,常见的报错信息为“Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTase”。这个错误信息通常不能直接解决问题,需要查看日志来确定问题的原因。日志存放目录为/shbigdata...

    Apache Hive面试题

    #### 六、Hive SQL解析为MR Job的过程 1. **语法解析**: - **工具**:使用Antlr完成SQL语句的词法和语法解析,生成抽象语法树(AST)。 2. **生成查询单元(QueryBlock)**: - **内容**:遍历AST,生成基本...

    Hive常见问题维护手册V1.01

    1. **SSH 登录到节点**:直接登录到集群中的某个节点,然后查找日志目录,例如 `/var/log/hive` 或 `/usr/local/hive/logs`。 2. **通过 Web UI**:如果 Hive Server2 配置了 Web UI,可以在线查看日志。 3. **使用 ...

    如何解决mysqlimport: Error: 13, Can’t get stat of 的问题

    代码如下:root@zhou:/usr/local/mysql# mysqlimport -uroot -p123 -h127.0.0.1 -P3306 test backup/chen.sqlmysqlimport: Error: 13, Can’t get stat of ‘/usr/local/mysql/data/backup/chen.sql’ (Errcode: 2),...

    hadoop-mini-clusters

    HiveMetaStore-Derby支持的HiveMetaStore 风暴-Storm LocalCluster Kafka-本地Kafka经纪人 Oozie-本地Oozie服务器-再次感谢弗拉基米尔 MongoDB-我知道...不是Hadoop ActiveMQ-感谢弗拉基米尔·兹拉特金(Vladimir...

    spark-3.2.4-bin-hadoop3.2-scala2.13 安装包

    此外,使用`--master local[*]`可以在本地模式下快速测试代码,而无需连接到集群。 10. **社区和文档**: Spark有一个庞大的开发者社区,提供丰富的教程、文档和示例代码。官方文档详细介绍了Spark的各个组件和API,...

    PV、UV的几种写法

    一、HQL(Hive Query Language)写法 在HQL中,通常我们用`COUNT(DISTINCT column)`来计算UV,但这种方法在数据量大时可能会影响性能。为了优化,可以采用以下方式: ```sql -- 计算UV SELECT tmp.shop, COUNT(1) ...

Global site tag (gtag.js) - Google Analytics