hive学习1(hive基本概念)
2016-11-13 13:38
211 查看
hive基本概念
hive简介
hive是什么
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。为什么使用hive
1)简单易上手。提供了类sql查询语言HQL,提供快速开发的能力。2)避免了去写MapReduce,减少开发人员的学习成本。
3)统一的元数据管理(HCalalog)。可与pig,presto等共享。
4)为超大数据集设计的计算/扩展能力。MR作为计算引擎,HDFS作为存储系统。
hive的特点
可扩展Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。
延展性
Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
容错
良好的容错性,节点出现问题SQL仍可完成执行。
hive的系统架构
hive基本组成
1)用户接口
CLI,JDBC/ODBC,WebUI2)元数据存储(matastore)
默认存储在自带的数据库derby中,线上使用时一般换为MySQL3)驱动器(Driver)
解析器,编译器,优化器,执行器4)Hadoop
用MR计算,用HDFS存储hive各组件基本功能
用户接口主要由三个:CLI、JDBC/ODBC和WebGUI。其中,CLI为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive元数据存储:Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。
Hive与SQL的比较
1)查询语言
hive使用类SQL的HQLsql使用sql
2)数据存储位置
hive是将数据存储在HDFS中sql可以将数据保存在块设备或者本地文件系统中
3)数据格式
Hive 中没有定义专门的数据格式,数据格式可以由用户指定,用户定义数据格式需要指定三个属性:列分隔符(通常为空格、”\t”、”\x001″)、行分隔符(”\n”)以及读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)数据库中,不同的数据库有不同的存储引擎,定义了自己的数据格式
4)数据更新
Hive 中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的sql支持数据更新
5)执行延迟
hive延迟性高sql延迟性低
6)扩展性
hive扩展性好sql扩展性有限
7)索引
hive和sql都支持索引8)分区
hive和sql都支持分区hive的数据存储
hive的所有数据存储基于hadoop的HDFS,hive没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)在创建表时,指定Hive 数据的列分隔符和行分隔符,Hive 就可以解析数据
存储结构主要包括:数据库、文件、表、视图、索引
Hive 中包含以下数据模型:DB、Table,External Table,Partition,Bucket
1) db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹
2) table:在hdfs中表现所属db目录下一个文件夹
3) external table:外部表, 与table类似,不过其数据存放位置可以在任意指定路径。普通表:删除表后,hdfs上的文件都删了;外部表删除后, hdfs上的文件没有删除, 只是把文件删除了
4) partition:在hdfs中表现为table目录下的子目录
5) bucket:桶, 在hdfs中表现为同一个表目录下根据hash散列之后的多个文件, 会根据不同的文件把数据放到不同的文件中
相关文章推荐
- Hive学习之Hive基本概念及实践
- 学习J2SE过程中的30个基本概念[转]
- 学习Java的30个基本概念
- 学习Java的30个基本概念
- 学习Java的30个基本概念
- 学习J2SE过程中的30个基本概念
- 学习SVG 之一 (了解矢量概念、SVG基本概念)
- 学习Java的30个基本概念
- 孙鑫VC学习笔记:第十四讲 网络的基本概念
- 信息安全学习总结(1):基本概念
- 学习Java的30个基本概念
- 学习Java的30个基本概念
- 学习笔记-PPP and PPPoE基本概念
- 学习J2SE过程中的30个基本概念
- 孙鑫VC学习笔记:第十五讲 进程和线程基本概念
- UML学习笔记(二):复习面向对象的一些基本概念
- Windows GDI学习笔记(1)——基本概念
- MPEG4 & H.264学习笔记之二 ------ 视频编码基本概念及时域模型
- [VB学习中]之一:基本概念
- 学习J2SE过程中的30个基本概念