作者:熊金涟_473 | 来源:互联网 | 2023-09-04 15:06
Hive架构1)用户接口:包括CLI(hiveshell)、JDBCODBC(java访问hive),WEBUI(浏览器访问hive);2)元数据存储(Metastore):默认存
Hive架构
1)用户接口:包括CLI(hive shell)、JDBC/ODBC(java访问hive),WEBUI(浏览器访问hive);
2)元数据存储(Metastore):
默认存储在自带的数据库derby中,线上使用时一般采用MySQL;
元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、列/分区 属性、表的类型(是否是外部表)、表的数据所在目录等;
database是表(table)的名字空间。默认的数据库是default;
table的原数据信息有:列和它们的类型、拥有者(owner),存储空间和SerDe信息;
partition每个分区都有自己的列,存储空间和SerDe信息
3)驱动器(Driver)
调用编译器compiler处理hiveql字符串,这些字符串可能是一条DDL、DML、查询语句
解析器、编译器、优化器、执行器;
完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成;
生成的查询计划存储在HDFS中,并在随后的MapReduce调用执行;
4)Hadoop
用MapReduce计算,用HDFS存储 ;
Hive的数据存储在HDFS之上;
大部分的查询由MapReduce计算完成;两种情况不跑MapReduce: select * from xxx 和 select * from xxx where 分区字段 不跑mapreduce
Hive单机环境部署图
Hive集群环境部署图
注:在生产环境中元数据需要采用主备服务器的方式防止宕机;
Hive运行模式
Hive运行模式即任务的执行环境,分为: 本地 和 集群 两种
可以通过mapred.job.tracker来指定,指定方式:
hive> SET mapred.job.tracker=local
不设置默认为集群方式 。