hive之大数据仓库
hive是基于hadoop的一个数据仓库工具,用来进行数据提取、转换、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供sql查询功能,能将sql语句转换成map reduce任务运行,通过自己的sql查询分析需要的内容,这套sql简称hive sql。
hive不适合用于联机(online)事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。
hive的特点包括:可伸缩(在hadoop的集群上动态添加设备)、可扩展、容错、输入格式的松散耦合。
hive 构建在基于静态批处理的hadoop 之上,hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,hive 在几百mb 的数据集上执行查询一般有分钟级的时间延迟。
hive是一种底层封装hadoop的数据仓库处理工具,使用类sql的hiveql语言实现查询,所有hive的数据都存储在hadoop兼容的文件系统中。hive在加载数据过程中不会对数据进行任何的修改,只是将数据移动到hdfs中hive设定的目录下,因此,hive不支持对数据的改写和添加,所有的数据都是在加载的时候确定的。
hive的设计特点如下:
1.支持创建索引,优化数据查询
2.不同的存储类型,例如,出文本文件、hbase中的文件。
3.将元数据保存在关系型数据库中,大大减少了在查询过程中执行语义检查的时间。
4.可以直接使用存储在hadoop文件系统中的数据。
5.内置大量用户函数udf来操作时间、字符和其他的数据挖掘工具,支持用户扩展udf函数来完成内置函数无法实现的操作。
hive体系架构:
用户接口:
用户接口主要有三个:cli,client 和 wui。其中最常用的是 cli,cli 启动的时候,会同时启动一个 hive 副本。
client 是 hive 的客户端,用户连接至 hive server。在启动 client 模式的时候,需要指出 hive server 所在节点,
并且在该节点启动 hive server。 wui 是通过浏览器访问 hive。
元数据存储:
hive将元数据存储在数据库中,如mysql、debty。hive中的元数据包括表的名字,表的列和分区及其属性,
表的属性(是否为外部表等),表的数据所在目录等。
解释器、编译器、优化器、执行器:
解释器、编译器、优化器完成 hql 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。
生成的查询计划存储在 hdfs 中,并在随后由 mapreduce 调用执行。
6.类sql的查询方式,将sql查询转换为mapreduce的job在hadoop集群上执行。
上一篇: 他为啥还泡在水里了