Hive Local Mode

Hive,MapReduce和Local Mode

Hive编译器(compiler)会为绝大多数查询操作生成MapReduce任务。这些任务会被提交给MapReduce集群,下面的变量指定了集群的位置:

mapred.job.tracker

(可用命令查看变量值:set mapred.job.tracker)

一般情况下,这个变量指定了拥有多个节点的集群位置。Hadoop也提供了设置让用户能够在自己的工作站上面运行本地任务。在查询小规模数据的情况下会非常有用-在这种情况下本地模式运行通常会比提交到集群上快得多。数据会从HDFS上下载到本地上。需要清楚的是,本地模式只运行一个reducer,所以处理大数据集会非常慢。

从0.7版本开始,Hive全面支持本地模式执行方式。下面是开启本地模式执行的设置选项:

hive> SET mapreduce.framework.name=local;

除此之外,mapred.local.dir指定了本地模式任务的运行路径(如果不设置或者设置不正确,将会产生本地磁盘空间分配异常)。

从0.7版本开始,Hive也支持自动运行本地模式任务。相关的选项有:

选项

默认值

描述

hive.exec.mode.local.auto

false

是否开启

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

134217728(128M)

任务的总输入文件不超过此大小

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

4

总的map-task数小于此

另一个限制条件是:reduce-task的数量为0或者1;

 

更新:

部分选项有变化:

 

需要注意的是:由于Hadoop服务器节点和Hive客户端的jvm版本或者库的差异,运行本地任务是可能发生不可预料的行为或者错误。

本地任务的执行是在一个独立的Hive客户端的子jvm中完成的。用户可以通过设置hive.mapred.local.mem选项限定jvm的最大内存量。默认设为为0,意味着Hive让Hadoop自行决定子jvm的内存占用量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值