你好,游客 登录 注册 发布搜索
背景:
阅读新闻

Hadoop白皮书(4):数据仓库Hive简介

[日期:2014-03-26] 来源:企业网D1net  作者: [字体: ]

  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 内嵌的功能,完成更复杂的分析。

Hadoop,数据仓库Hive

  Hive特点

  针对海量数据的高性能查询和分析系统

  由于 Hive 的查询是通过 MapReduce 框架实现的,而 MapReduce 本身就是为实现针对海量数据的高性能处理而设计的。所以 Hive 天然就能高效的处理海量数据。

  与此同时,Hive 针对 HiveQL 到 MapReduce的翻译进行了大量的优化,从而保证了生成的MapReduce 任务是高效的。在实际应用中,Hive 可以高效的对 TB 甚至 PB级的数据进行处理。

  类SQL的查询语言

  HiveQL 和 SQL 非常类似,所以一个熟悉SQL 的用户基本不需要培训就可以非常容易的使用 Hive 进行很复杂的查询。

  HiveQL 灵活的可扩展性(Extendibility)

  除了 HiveQL 自身提供的能力,用户还可以自定义其使用的数据类型、也可以用任何语言自定义 mapper 和 reducer 脚本,还可以自定义函数(普通函数、聚集函数)等。这就赋予了 HiveQL 极大的可扩展性。用户可以利用这种可扩展性实现非常复杂的查询。

  高扩展性(Scalability)和容错性

  Hive本身并没有执行机制,用户查询的执行是通过 MapReduce 框架实现的。由于MapReduce 框架本身具有高度可扩展(计算能力随 Hadoop 机群中机器的数量增加而线性增加)和高容错的特点,所以 Hive也相应具有这些特点。

  与 Hadoop 其他产品完全兼容

  Hive 自身并不存储用户数据,而是通过接口访问用户数据。这就使得 Hive支持各种数据源和数据格式。例如,它支持处理 HDFS 上的多种文件格式(TextFile、SequenceFile 等),还支持处理 HBase 数据库。用户也完全可以实现自己的驱动来增加新的数据源和数据格式。一种理想的应用模型是将数据存储在 HBase 中实现实时访问,而用Hive对HBase 中的数据进行批量分析。

收藏 推荐 打印 | 录入:Cstor | 阅读:
相关新闻       Hadoop  数据仓库Hive 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款