1.Hive的产生:
–非java编程者对hdfs的数据做mapreduce操作
2.数据仓库.解释器,编译器,优化器等
3.Hive运行时,元数据存储在关系型数据库里面
4.架构:用户接口主要有三个:CLI,Client 和 WUI ,cli 接入方式最为普遍,driver:将sql翻译为mapReduce,meta(元数据) 放入hive内置关系型数据库,解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行,Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成(包含*的查询,比如select * from tbl不会生成MapRedcue任务
–编译器将一个Hive QL转换操作符
–操作符是Hive的最小的处理单元
–每个操作符代表HDFS的一个操作或者一道MapReduce作业
5.操作符•Operator
–Operator 都是hive定义的一个处理过程
–Operator都定义有:
–protected List <Operator<? extends Serializable >> childOperators;
–protected List <Operator<? extends Serializable >> parentOperators;
–protected boolean done; // 初始化值为false
6.Hive的三种模式--(hive需要借助关系型数据库 比如mysql)
1.单用户模式。此模式连接到一个In-memory 的数据库Derby,一般用于Unit Test 2.单用户模式。通过网络连接到一个数据库中,是最经常使用到的模式 3.–远程服务器模式。用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库