1.什么是Hive

Hive是一个基于Hadoop的一个数据仓库工具,是将结构化数据文件映射成为一个数据表,并提供类SQL的查询功能

2.Hive可以对数据进行存储与计算(与Hadoop关系)

数据存储依赖于HDFS

数据计算依赖于MapReduce

初识Hive-基本概念

3.Hive的意义(目的)

在Hadoop是个好软件,但不好使用(学习成本高,坡度陡,难度大)的前提下

降低了程序员使用Hadoop的学习成本,降低了学习难度

4.Hive的特点

可扩展性:与集群的扩展性相同

延展性:Hive提供自定义函数接口,支持HQL语句直接调用java方法

容错性:节点出现问题SQL扔可完成执行

5.Hive架构

初识Hive-基本概念

基本组成

用户接口:包括CLI、JDBC/ODBC、WebGUI。

​ CLI:shell命令行

​ JDBC/ODBC:是Hive的JAVA实现,与传统数据库JDBC类似

​ WebGUI:是通过浏览器访问Hive

元数据存储

解释器,编译器,优化器,执行器

6.元数据

描述数据的数据就是元数据

包括

​ 表的名字

​ 表的列

​ 列的类型

通常是存储在关系数据库如mysql/derby中。Hive将元数据存储在数据库中。

7.Hive内部执行过程

解释器 —>编译器(会使用到元数据)—>优化器—>执行器

完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行。

8.Hive基本介绍

初识Hive-基本概念
Hive中没有定义专门的数据格式,用户提供的数据是什么格式,Hive直接将数据拷贝到集群。不会对数据格式进行改变。

用户定义数据格式需要制定三个属性:

​ 列分隔符(通常为空格、"\t"、"\x001")

​ 行分隔符("\n")

​ 读取文件数据的方法(Hive中默认有三个文件格式

​ TextFile,SequenceFileRCFile)

​ 不会对数据本身进行任何修改,甚至不会对数据进行扫描

​ Hive中不支持对数据的改写和添加(在一个文本中添加新数据)

​ Hive在加载数据的过程中不会对数据中的某些Key建立索引

总结:Hive具有sql数据库的外表,但应用场景完全不同,Hive只适合用来做批量数据统计分析

9.Hive内的基本概念(数据模型)

DB:数据库

Table:表(内部表)

External Table:外部表

Partition:分区

Bucket:分桶

Hive支持的数据格式

​ 可支持Text, SequenceFile ,ParquetFile,ORC格式RCFILE等

相关文章:

  • 2021-07-08
  • 2021-08-02
  • 2021-08-25
  • 2021-04-10
  • 2021-06-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-19
  • 2021-09-08
  • 2021-11-17
  • 2021-08-29
  • 2022-02-08
相关资源
相似解决方案