Hive:什么情况下可以避免进行MapReduce


转载:Hive:什么情况下可以避免进行MapReduce
博客:http://www.changmeng.top/


对于Hive中的查询,如果用户进行过执行的话,那么可能会注意到大多数情况下查询都会触发一个MapReduce任务(job)。Hive中对某些情况的查询可以不必使用MapReduce。

什么是本地模式

Hive查询的本地模式是指在本地机器上执行Hive查询,而不需要连接到远程计算机或集群。这个模式以“本地模式”或“本地Hive模式”来称呼。

在本地模式下,用户可以使用HiveQL查询语言编写查询,并将其提交给Hive服务进行处理。这些查询只会在本地计算机上运行,不需要分布式计算资源和管理系统。使用本地模式可以很方便地学习Hive的基本语法和语义,同时能够加快一些小规模数据的测试和开发工作。

对于Hive中的查询,如果用户进行过执行的话,那么可能会注意到大多数情况下查询都会触发一个MapReduce任务(job)。Hive中对某些情况的查询可以不必使用MapReduce,也就是所谓的本地模式,例如:

这个例子假定数据表已经被创建并且有合适的数据存储在本地文件系统中。

SELECT * FROM employees;

在这种情况下,Hive可以简单地读取employees对应的存储目录下的文件,然后输出格式化后的内容到控制台。

对于WHERE 语句中过滤条件只是分区字段这种情况(无论是否使用LIMIT语句限制输出记录条数),也是无需MapReduce过程的。

SELECT * FROM employees
WHERE country='US' AND state='CA'
LIMIT 100;

配置环境变量

要使用本地模式,需要先安装Hive并配置相应环境变量。

如果属性 hive.exec.mode.local.auto 的值设置为true的话,Hive还会尝试使用本地模式执行其他的操作。否则,Hive使用MapReduce来执行其他所有的查询。

set hive.exec.mode.local.auto=true;

参考

Hive编程指南

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值