1.什么是Hive?

  • Apache Hive是一款建立在Hladoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。
  • Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。
  • Hive由Facebook实现并开源。

Hive与Hadoop关系?

  • Hive利用HDFS存储数据,利用MapReduce查询分析数据。
  • 这样突然发现Hive没啥用,不过是套壳Hladoop罢了。其实不然,Hive的最大的魅力在于用户专注于编写HIQL,Hlive帮您转换成为MapReduce程序完成对数据的分析。

2. 如果模拟实现Hive功能

Hive能将数据文件映射成为一张表,这个映射是指什么?

答:映射在数学上称之为一种对应关系,比如y=x+1,对于每一个x的值都有与之对应的y的值。hive中能够写sql处理的前提是针对表,而不是针对文件,因此需要将文件和表之间的对应关系描述记录清楚。映射信息专业的叫法称之为元数据信息(元数据是指用来描述数据的数据metadata )。

hadoop hive 性能 hadoop内的hive_Hive

Hlive软件本身到底承担了什么功能职责?

答:将SQL语法解析编译成为MapReduce。

Hive使用流程?

hadoop hive 性能 hadoop内的hive_Hive_02

3. Hive的元数据

什么是元数据

  • 元数据(Metadata ),又称中介数据、中继数据,为描述数据的数据( data about data),主要是描述数据属性( property )的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

Hive Metadata即Hive的元数据

  • Hive Metadata包含有Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。
  • 元数据存储在关系型数据库中,如Hive内置的Derby、或者第三方如MySQL等;

Hive Metastore

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

参考

https://www.bilibili.com/video/BV1CU4y1N7Sh?p=58