一、 Hive的基本概念
1、什么是hive(面试题)
答:
1.hive是一个可以将sql语句转换成mapreduce任务的工具
2.hive能够将结构化的数据组织在表中,支持分区和分桶,便于数据的管理和查询
3.hive是数据仓库建模的工具之一,他本身并不是数据库
2、为什么使用hive
答:
1.直接使用mapreduce的话,人员学习成本太高,项目要求时间周期太短,mapreduce实现复杂查询逻辑开发难度太大
2.使用sql可以可以提高开发能力,不用直接去写mapreduce,减少了开发人员的学习成本
3、sql语句是如何转化成mapreduce任务的(面试题)
答:sql会通过各种组件将sql语句转化成mapreduce任务
1.Driver(控制器):接受用户的查询语句,协调各个组件的工作,并将结果返回给用户
2.Parser(解析器):将sql字符串转化成抽象语法树AST,他会对sql语句进行判断,比如表是否存在,字段是否存在,sql语义是否错误等
3.Physical Plan(编译器):将AST编译,生成逻辑执行计划
4.Query Optimizer(优化器):对逻辑执行计划进行优化
5.Execution(执行器):把逻辑执行计划转换成可以运行的物理计划,对于hive来说就是MP,fink,spark