什么是HIVE
Hive是一个语句Hadoop的一个数据仓库工具,是将结构化数据文件映射成为一个数据表,并提供类SQL的查询功
能。
Hive可以对数据进行存储于计算
数据存储依赖于HDFS
数据计算依赖于MapReduce
Hive意义(目的)
在hadoop是个好软件,但是不好使用(学习成本太高,坡度陡,难度大)的前提下
降低了程序员使用hadoop的学习成本,降低了难度。
Hive特点
可扩展性:与集群的扩展性相同
延展性:Hive提供自定义函数接口,支持HQL语句直接调用java方法
容错性:节点出现问题SQL仍可完成执行。
Hive架构
元数据
描述数据的数据就是元数据
表的名字,
表的列
列的类型
Hive内部执行过程
解释器 -> 编译器(会使用到元数据) -> 优化器 -> 执行器
Hive与传统数据库对比
Hive基本介绍
Hive中没有定义专门的数据格式,用户提供的数据是什么格式,hive直接将数据拷贝到集群。不会对数据格式进行改
变。
用户定义数据格式需要指定三个属性:
列分隔符(通常为空格、”\t”、”\x001″)、
行分隔符(”\n”)
读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)
不会对数据本身进行任何修改,甚至不会对数据进行扫描。
Hive 中不支持对数据的改写和添加(在 一个文本中添加新数据)
Hive 在加载数据的过程中不会对数据中的某些 Key 建立索引。
总结:hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析
Hive内的基本概念
DB、数据库
Table, 表(内部表)
External Table, 外部表
Partition,分区
Bucket。分桶
Hive支持的数据格式
可支持Text, SequenceFile ,ParquetFile,ORC格式RCFILE等