Hive 查询可以执行三种类型的操作。
按照最便宜和最快到更昂贵和更慢的顺序,它们在这里。
配置单元查询可以是仅元数据请求。
显示表、描述表是示例。在这些查询中,hive 进程在元数据服务器中执行查找。元数据服务器是一个 SQL 数据库,可能是 MySQL,但实际的数据库是可配置的。
蜂巢查询可以是 hdfs 获取请求。从表中选择 * 就是一个例子。在这种情况下,hive 可以通过执行 hdfs 操作来返回结果。hadoop fs -get,或多或少。
Hive 查询可以是 Map Reduce 作业。
Hive 必须将 jar 运送到 hdfs,jobtracker 将任务排队,tasktracker 执行任务,最终数据放入 hdfs 或运送到客户端。
Map Reduce 作业也有不同的可能性。
它可以是地图唯一的工作。Select * from table where id > 100 ,例如,所有这些逻辑都可以应用于映射器。
可以是 Map 和 Reduce 作业,从 table 中选择 min(id);Select * from table order by id ;
它也可以导致多次map Reduce pass,但我认为上面总结了一些行为。