Hive基本概念

1.1 Hive简介

什么是Hive
是一个基于hadoop的数据仓库工具,可以将结构化数据映射成一张数据表,并提供类SQL的查询功能。

Hive的意义是什么
背景:hadoop是个好东西,但是学习难度大,成本高,坡度陡。
意义(目的):降低程序员使用hadoop的难度。降低学习成本。

Hive可以对数据进行存储与计算
存储使用HDFS存储
计算使用MapReduce进行计算。

Hive的特性
1、扩展性 : Hive的扩展性与集群的扩展性相同
2、延展性:Hive支持用户自定义函数,编写符合自己业务需求的函数。
3、容错性:节点出现问题(宕机/断电)SQL仍可完成执行。

1.2 Hive架构

架构图
Hive基本概念

基本组成:
元数据:描述数据的数据(属性)
表名称、字段名,字段的数据类型。
内部执行流程
解释器 -> 编译器 -> 优化器 -> 执行器

1.3 Hive与Hadoop的关系

Hive利用HDFS存储数据,利用MapReduce查询分析数据

Hive基本概念

1.4 Hive与传统数据库对比

hive用于海量数据的离线数据分析

Hive基本概念
数据格式:
Hive中没有定义专门的数据格式

数据格式部分自定义:
列分隔符(通常为空格、”\t”、”\x001″)
行分隔符(”\n”)
读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)。
Hive在加载数据的过程就是拷贝数据的过程,不需要特定的转化。不会对数据本身进行任何修改,甚至不会对数据
进行扫描。
Hive 中不支持对数据的改写和添加(对文本内数据的添加),
Hive 在加载数据的过程中不会对数据中的某些 Key 建立索引。所以Hive不适合在线数据查询(要求相应速度快)。

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

1.5 Hive支持的数据格式

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