本地模式
0.7版本后Hive开始支持任务执行选择本地模式(local mode)大多数的Hadoop job是需要hadoop提供的完整的可扩展性来处理大数据的。
在hive中运行的sql有很多是比较小的sql,数据量小,计算量小 ,这些比较小的sql如果也采用分布式的方式来执行,那么是得不偿失的.因为sql真正执行的时间可能只有10秒,但是分布式任务的生成的其他过程的执行可能要1分钟.这样的小任务更适合采用lcoal mr的方式来执行,就是在本地来执行,通过把输入数据拉回客户端来执行.
启用方式
- set hive.exec.mode.local.auto=true;(默认为false)
当一个job满足如下条件才能真正使用本地模式:
- job的输入数据大小必须小于参数:hive.exec.mode.local.auto.inputbytes.max(默认128MB)
- job的map数必须小于参数:hive.exec.mode.local.auto.tasks.max(默认4)
- job的reduce数必须为0或者1
例子
我这里有一张表,其实就是我们在前面教程hive streaming中演示用到的,我先在不开启