`
free9277
  • 浏览: 107222 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hive简单介绍

阅读更多
背景及体系结构

1背景

应用于工业的商务智能收集分析所需的数据集正在大量增长,使得传统的数据仓库解决方案变得过于昂贵。Hadoop 是一个流行的开源map-reduce实现,用于像yahoo, Facebook一类的公司。来存储和处理商用硬件上的大范围数据集。然而map-reduce程序模型还是处于很低级别,即需要开发者来书写客户程序,这些程序往往难于维护与重用。

hbase做数据库,但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面的hql查询。hive也叫做数据仓库。

2定义

Hive是基于Hadoop(HDFS, MapReduce)的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

本质是将SQL转换为MapReduce程序。

3体系结构

Hive本身建立在Hadoop的体系结构上,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行。并按照该计划生成MapReduce任务后交给Hadoop集群处理,Hive的体系结构如图1-1所示:

1-1 Hive的体系结构

4Hive的数据存储

Hive的存储是建立在Hadoop文件系统之上的。Hive本身没有专门的数据存储格式,也不能为数据建立索引,用户可以自由地组织Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符就可以解析数据了。

Hive中主要包含四类数据模型:表(Table)、外部表(External Table)、分区(Partition)和桶(Bucket)。

Hive中的表和数据库中的表在概念上是类似的,每个表在Hive中都有一个对应的存储目录。例如一个表pokesHDFS中的路径为/warehouse/pokes,其中/warehousehive-site.xml配置文件中由${hive.metastore.warehouse.dir}指定的数据仓库的目录。

Hive中每个分区都对应数据库中相应分区列的一个索引,但是分区的组织方式和传统关系型数据库不同。在Hive中,表中的一个分区对应表下的一个目录,所有分区的数据都存储在对应的目录中。例如,图1-2htable表中包含yearmonthday三个分区,分别对应三个目录:对于year=2012month=01day=01HDFS子目录为:/warehouse/htable/year=2012/ month=01/ day=01;对于year=2012month=02day=14HDFS子目录为:/warehouse/htable/year=2012/ month=02/ day=14;

桶对指定列进行哈希计算时,根据哈希值切分数据,每个桶对应一个文件。例如,将图1-2htable表中属性列Uniqueid列分散到32个桶中,首先要对Uniqueid进行hash计算,对应哈希值为0的桶写入HDFS的目录为:/warehouse/htable/year=2012/ month=01/ day=01/part-0;对应哈希值为1的桶写入HDFS的目录为:/warehouse/htable/year=2012/ month=01/ day=01/part-1

 
1-2 Hive数据存储

  • 大小: 41.3 KB
  • 大小: 50.5 KB
1
3
分享到:
评论

相关推荐

    hive原理1介绍

    ### Hive原理介绍 #### Hive概述 Hive是一个构建在Hadoop之上的数据仓库工具,它主要解决了Hadoop中数据管理的复杂性问题。通过将结构化的数据文件映射为一张数据库表,Hive提供了SQL查询的功能,使得数据分析人员...

    hive简单使用共13页.pdf.zip

    以上是对Hive的基本介绍,实际的“hive简单使用共13页.pdf.zip”文档可能涵盖了更具体的使用步骤、示例和最佳实践,建议下载并详细阅读以获取更多信息。学习Hive不仅可以提升你在大数据领域的技能,还能帮助你更好地...

    Hive介绍(百度)

    Hive的设计使得大数据处理变得更加简单,尤其适合ETL(提取、转换、加载)流程和报表生成。然而,由于其基于批处理的MapReduce模型,Hive可能不适合低延迟的在线查询需求。尽管如此,Hive仍然是大数据分析领域中的一...

    hive数据定义与简单的操作

    hive的定义与简单操作,大数据开发hive的简单介绍,入门级别知识点.

    SpringBoot整合hive-jdbc示例

    本文将详细介绍如何在SpringBoot项目中整合Hive-JDBC,并提供一个简单示例。 ### 1. Hive-JDBC简介 Hive-JDBC是Hive提供的一个客户端接口,允许Java应用程序通过JDBC连接到Hive服务器,执行SQL查询并获取结果。它...

    Hadoop数据仓库--hive介绍

    - 部分查询不需要 MapReduce,例如简单的 SELECT * FROM tbl。 - 可与 HBase 集成,提供实时的数据访问能力。 2.1 实现细节 Hive 的元数据通常存储在传统的 RDBMS 中,如 MySQL,以便快速访问和管理。HiveQL 语句在...

    hive介绍 安装 和 mysql 数据库的安装

    ### Hive介绍 Hive是一种构建在Hadoop之上的数据仓库工具,主要用来进行数据提取、转换、加载(ETL),并能以结构化的形式存储数据,以便进行更方便的查询和分析。它提供了类似SQL的查询语言(HQL),允许用户以SQL...

    tools_hive-hwi

    2. **Hive-HWI介绍**:Hive-HWI是一个轻量级的Web应用程序,它提供了一个图形化界面,用户可以在这个界面上创建Hive表、执行HQL查询、查看查询结果等,极大地提高了用户的交互体验。 3. **安装Hive-HWI**:首先,你...

    hadoop+hive+mapreduce的java例子

    基于hadoop的Hive数据仓库JavaAPI简单调用的实例,关于Hive的简介在此不赘述。hive提供了三种用户接口:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行 JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似 Web...

    修改hive表分区名称

    在大数据处理领域中,Apache Hive是一款广泛使用的数据仓库工具,它能够将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能,使得用户能够通过简单的SQL语句来处理存储在Hadoop中的大规模数据集。...

    Hadoop简单应用案例,包括MapReduce、单词统计、HDFS基本操作、web日志分析、Zookeeper基本使用、Hive简单操作等

    在这个案例中,可能会介绍如何配置和使用Zookeeper来管理Hadoop集群的元数据和一致性问题。 6. **Hive**:Hive是基于Hadoop的数据仓库工具,提供SQL-like接口进行数据查询和分析。学习Hive的基本操作,如创建表、...

    Hive配置(Oracle数据库为元数据)

    本文档将详细介绍如何配置 Hive 以便能够利用 Oracle 数据库来管理其元数据信息。 #### 二、安装与配置流程 **1. 下载并安装 Hive** 首先从 Apache 官方网站下载 Hive 的安装包,本文档使用的版本为 apache-hive-...

    hive基础知识总结

    - **CLI (Command Line Interface)**: CLI是Hive提供的命令行接口,允许用户通过简单的命令行进行数据查询和管理。用户可以通过命令`hive --service cli`进入CLI模式。CLI支持多种命令选项,例如`-d`或`--define`...

    Java私塾:Hive Shell 基本操作——深入浅出学Hive

    本文将详细介绍 Hive Shell 的基本操作。 ### 初始 Hive 首先,你需要安装和配置 Hive。Hive 的安装通常包括将 Hive 的二进制包解压到一个特定的目录(例如 `/usr/local/hive`),然后配置 `hive-site.xml` 文件以...

    第14章 基于Hadoop的数据仓库Hive

    本章首先介绍了数据仓库的概念、Hive的基本特征、与其他组件之间的关系、与传统数据库的区别以及它在企业中的...最后,以单词统计为例,介绍了如何使用Hive进行简单编程,并说明了Hive编程相对于MapReduce编程的优势。

    深入浅出学习HIVE.pdf

    Hive的历史始于Facebook,并被开源,自2011年起,Hive经历了多个版本的升级,加入了更多高级特性,如简单索引,HAING,insertinto等。其未来发展将包括增加更多类似传统数据库的功能,如存储过程,提高转换成的...

Global site tag (gtag.js) - Google Analytics