[size=medium]
Hive 是一种建立在 Hadoop 之上的数据仓库架构。它提供了:
• 一套方便的实施数据抽取(ETL)的工具。
• 一种让用户对数据描述其结构的机制。
• 支持用户对存储在Hadoop中的海量数据进行查询和分析的能力。
Hive 的基本特点是它采用 HDFS 进行数据存储并利用 Map/Reduce 框架进行数据操作。所以从本质上来说,Hive 就是个编译器,它把用户的操作(查询或者 ETL)变换成Map/Reduce 任务,利用 Map/Reduce 框架执行这些任务以对HDFS上的海量数据进行处理。
Hive 被设计成一种批处理系统。它利用 Map/Reduce 框架来处理数据。因此,它在Map/Reduce 任务提交和调度上有比较高的开销。即使对于小数据集(几百兆)来说,延迟也是分钟级的。但其最大的优点是延迟相对于数据集大小是线性增加的。
Hive 定义了一种简单的类 SQL 查询语言 HiveQL,让熟悉 SQL 的用户可以非常容易的进行查询。与此同时,HiveQL 也允许熟悉 Map/Reduce 框架的程序员在查询中插入自定义的 mapper 和 reducer 脚本以扩展 Hive 内嵌的功能,完成更复杂的分析。
[img]http://dl.iteye.com/upload/attachment/0076/5117/43d7f9ce-9f9a-3a3d-af97-6bf6a6f29a76.jpg[/img]
[color=blue]Hive特点[/color]
[b]针对海量数据的高性能查询和分析系统[/b]
由于 Hive 的查询是通过 MapReduce 框架实现的,而 MapReduce 本身就是为实现针对海量数据的高性能处理而设计的。所以 Hive 天然就能高效的处理海量数据。
与此同时,Hive 针对 HiveQL 到 MapReduce的翻译进行了大量的优化,从而保证了生成的MapReduce 任务是高效的。在实际应用中,Hive 可以高效的对 TB 甚至 PB级的数据进行处理。
[b]类SQL的查询语言[/b]
HiveQL 和 SQL 非常类似,所以一个熟悉SQL 的用户基本不需要培训就可以非常容易的使用 Hive 进行很复杂的查询。
[b]HiveQL 灵活的可扩展性(Extendibility)[/b]
除了 HiveQL 自身提供的能力,用户还可以自定义其使用的数据类型、也可以用任何语言自定义 mapper 和 reducer 脚本,还可以自定义函数(普通函数、聚集函数)等。这就赋予了 HiveQL 极大的可扩展性。用户可以利用这种可扩展性实现非常复杂的查询。
[b]高扩展性(Scalability)和容错性[/b]
Hive本身并没有执行机制,用户查询的执行是通过 MapReduce 框架实现的。由于MapReduce 框架本身具有高度可扩展(计算能力随 Hadoop 机群中机器的数量增加而线性增加)和高容错的特点,所以 Hive也相应具有这些特点。
[b]与 Hadoop 其他产品完全兼容[/b]
Hive 自身并不存储用户数据,而是通过接口访问用户数据。这就使得 Hive支持各种数据源和数据格式。例如,它支持处理 HDFS 上的多种文件格式(TextFile、SequenceFile 等),还支持处理 HBase 数据库。用户也完全可以实现自己的驱动来增加新的数据源和数据格式。一种理想的应用模型是将数据存储在 HBase 中实现实时访问,而用Hive对HBase 中的数据进行批量分析。
[/size]
hive数据仓库的数据物理位位置 hive数据仓库有什么特点
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
数据仓库 hive 入门 什么是hive数据仓库
一、hive概念 hive:面向数据分析的存储系统 数据仓库和数据库对比分析 关系:两者均是用来存储数据的,即均为数据的存储载体。数据仓库也是数据库,是数据库的一种衍生、延深应用。数据仓库的出现,并不是要取代数据库,且当下大部分数据仓库还是用关
数据仓库 hive 入门 hive big data hadoop 数据仓库