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

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

  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 中的数据进行批量分析。

时间: 2024-09-30 09:39:30

Hadoop白皮书(4):数据仓库Hive简介的相关文章

基于Hadoop的数据仓库Hive基础知识

Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理.特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,可通过HQL语句实现简单的MR统计,Hive将HQL语句转换成MR任务进行执行. 一.概述 1-1 数据仓库概念 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented).集成的(Integrated).相对稳定的(Non-Volatile).反应历史变化(Time Variant)的数据集合,用于支持

Hive简介、什么是Hive、为什么使用Hive、Hive的特点、Hive架构图、Hive基本组成、Hive与Hadoop的关系、Hive与传统数据库对比、Hive数据存储(来自学习资料)

1.1 Hive简介 1.1.1   什么是Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.1.2   为什么使用Hive Ø  直接使用hadoop所面临的问题 人员学习成本太高 项目周期要求太短 MapReduce实现复杂查询逻辑开发难度太大   Ø  为什么要使用Hive 操作接口采用类SQL语法,提供快速开发的能力. 避免了去写MapReduce,减少开发人员的学习成本. 功能扩展很方便. 1.1.3   H

Hadoop/Hive简介

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将 sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析. Hadoop是一个存储计算框架,主要由两部分组成: 1,存储(Hadoop分布式文件系统-HDFS) 2,计算(MapReduce计算框架) 1,Hadoop分布式文件系统 这是一

Hadoop学习笔记(三):Hive简介

定义       Hive是一个构建在Hadoop上的数据仓库框架.可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析.(来自百度百科~~) metastore       metastore是Hive元数据的集中存放地,metastore包括两部分:服务和后台数据的存储.默认情况

Spark修炼之道(进阶篇)——Spark入门到精通:第二节 Hadoop、Spark生成圈简介

作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 Hadoop生态圈 Spark生态圈 1. Hadoop生态圈 原文地址:http://os.51cto.com/art/201508/487936_all.htm#rd?sukey=a805c0b270074a064cd1c1c9a73c1dcc953928bfe4a56cc94d6f67793fa02b3b983df6df92dc418df5a1083411b53325 下图给出了Hadoop生态圈中的重要

《Hive编程指南》一1.2 Hadoop生态系统中的Hive

1.2 Hadoop生态系统中的Hive WordCount算法,和基于Hadoop实现的大多数算法一样,有那么点复杂.当用户真正使用Hadoop的API来实现这种算法时,甚至有更多的底层细节需要用户自己来控制.这是一个只适用于有经验的Java开发人员的工作,因此也就将Hadoop潜在地放在了一个非程序员用户无法触及的位置,即使这些用户了解他们想使用的算法. 事实上,许多这些底层细节实际上进行的是从一个任务(job)到下一个任务(job)的重复性工作,例如,将Mapper和Reducer一同写入

hadoop学习笔记--10.hive安装与配置

一.hive安装 1.环境要求 1. Java 1.7或以上 2. Hadoop 2.x (preferred), 1.x (not supported by Hive 2.0.0 onward). 2.安装配置 Hive没有才有hadoop.HBase或者是Zookeeper的主从架构,所以只用在所需要的机器上安装即可. 1. 解压 tar -zxvf apache-hive-0.13.1-bin.tar.gz 把解压的文件夹移到自己需要的存放的目录. 2. 配置环境 sudo vi /etc

一文读懂Hadoop、HBase、Hive、Spark分布式系统架构

机器学习.数据挖掘等各种大数据处理都离不开各种开源分布式系统,hadoop用户分布式存储和map-reduce计算,spark用于分布式机器学习,hive是分布式数据库,hbase是分布式kv系统,看似互不相关的他们却都是基于相同的hdfs存储和yarn资源管理,本文通过全套部署方法来让大家深入系统内部以充分理解分布式系统架构和他们之间的关系 本文结构 首先,我们来分别部署一套hadoop.hbase.hive.spark,在讲解部署方法过程中会特殊说明一些重要配置,以及一些架构图以帮我们理解,

cygwin、hadoop环境下运行hive的show tables报错

问题描述 Causedby:java.net.URISyntaxException:RelativepathinabsoluteURI:file:D:/cygwin/tmp//Administrator/hive_2011-10-27_23-46-59_578_737308749433472在cygwin,hadoop环境下运行hive的showtables报这个错,谢谢!--------------------------------------------------------------