hive的学习笔记 持续更新

发布时间:2024年01月11日

?Hive 能够将数据文件映射成为一张表,这个映射是指什么?
? ? ? hive中能够写SQL处理的前提是针对表,而不是针对文件,因此需要将文件和表之间的对应关系描述记录清楚。元数据信息(用来描述数据的数据)
?Hive 本身到底承担了什么功能职责?
? ? ? hive 本身并不直接处理数据文件,而是通过执行引擎处 ?理。当下支持MapReduce,tez,spark 3种执行引擎。
?Hive 中的数据
? ? ? 可以在粒度上分为三类:table表,partition分区,bucket分桶。

? ? ? ? ? ? ? ? ? ?Hive 的数据都是存储在HDFS上的,默认有一个根目录,在hive-site.xml,由参数hive.metastore.warehouse.dir指定。默认值 /user/hive/warehouse?因此,hive中的数据库在HDFS上的存储路径:$}{hive.metastore.warehouse.dir}/database.db


?Partitions 分区
? ? ? 是hive的一种优化手段表,指定分区列的值将表划分成不同的分区,可以更快的对指定分区数据进行查询。
? buckets 分桶
? ? ? ?是hive的一种优化手段表,指根据表中字段的值,经过hash计算规则将数据文件分成指定的若干个小文件。 分桶规则:hashfuns(字段)%桶数,余数相同的分到同一个文件。 优化join查询和方便抽样查询。
? Hive 只适合用来做海量数据的离线分析,定位是数据仓库,面向分析的olap系统。


? ? ? ? metastore元数据服务
????? metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通过连接metastore服务,由metastore再去连接MySQL数据库来存取数据。同时,可以让个客户端同时连接,不需要用户名和密码就可以连接,保证了hive元数据安全。
?
????? metastore服务配置有3种模式:内嵌、本地、远程

????? 内嵌模式
????????? 是metastore默认部署模式,此模式下,元数据存储在内置的derby数据库,并且derby数据库和meta store服务都嵌入在主hiveserver进程中,当启动hiveserver进程时,derby和metastore都会启动,不需要额外起metastore服务,但是一次只能支持一个活动用户,不适合生产环境
????????
?????? 本地模式
??????? metastore服务与主hiveserver进程在同一进程中运行,但是存储元数据的数据库在单独的进程中运行,并且可以单独在主机上。meatstore服务将通过jdbc与meatstore数据进行通信。
??????? 本地模式采用外部数据库来存储元数据,推荐使用MySQL,hive根据hive.metastore.uris 参数值来判断,如果为空,则为本地模式。缺点:每一次启动hive服务,都内置启动一个metastore ?
?
????? 远程模式
?????? 远程模式下,metastore服务在其自己的单独JVM上运行,而不在hiveserver的JVM中运行。如果其他进程与metastore服务通信,则可以使用 Thrift Network API进行通信。
?????? 远程模式下,需要配置hive.metastore.uris 参数来指定metastore服务运行的机器IP端口,并且需要单独手动启动metastore服务。元数据也采取外部数据库来存储元数据。由于可以屏蔽数据库层,因此带来了跟好的可管理性和安全性
?????
????????

文章来源:https://blog.csdn.net/weixin_45837583/article/details/135468268
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。