欢迎投稿

今日深度:

Hive介绍,

Hive介绍,


Hive概述

HIve是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张表,并提供完整的sql查询功能可以将sql语句转换为MapReduce任务进行运行可以通过类SQL 语句快速实现MapReduce统计。本质是将SQL转换为MapReduce程序。

Hive是建立在Hadoop上的数据仓库基础架构。并且提供了一系列的工具,可以用来进行数据提取、转化、加载(ETL Extract-Transform-Load),也可以叫做数据清洗。这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive定义了简单的类SQL查询语言,称为HiveQl(HQL),允许熟悉SQL的用户查询数据。

Hive的Hql

HQL -Hive通过类SQL的语法,来进行分布式的计算。HQL用起来和SQL非常相似,Hive在执行过程中将HQL转化为MapReduce去执行,所以Hive其实是基于Hadoop的一种分布式计算框架,底层仍然是MapReduce,所以Hive本质上还是一种离线大数据分析工具

Hive的特点

1.可扩展

Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。

2.延展性

Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

3.容错

良好的容错性,节点出现问题SQL仍可以完成执行

数据仓库的特征

1.数据仓库是多个异构数据源所集成的。

2.数据仓库存储的一般是历史数据。大多数的应用场景是读取数据(分析数据),所以数据仓库是弱事务的。

3.数据库是为捕获数据而设计的,数据仓库是为分析数据而设计。

4.数据仓库是时变的,数据存储从历史的角度提供信息。即数据仓库中的关键结构都隐式或显示地包含时间元素。

5.数据仓库是弱事务的,因为数据仓库存的是历史数据,一般都读(分析)数据场景。

数据仓库与数据库的区别

1.数据库属于OLTP系统。(Online Transaction Processing)联机事务处理系统。涵盖了企业大部分的日常操作。比如MySql,oracle等关系型数据库。
2.数据仓库属于OLAP系统。(Online Analytical Processing)联机分析处理系统。Hive,Hbase等。

3.OLTP是面向用户的、用于程序员的事务处理以及客户的查询处理。

4.OLAP是面向市场的,用于知识工人(经理、主管和数据分析人员)的数据分析。

5.OLAP通常会集成多个异构数据源的数据,数据量巨大。

6.OLTP系统的访问由于要保证原子性,所以有事务机制和恢复机制。

7.OLAP系统一般存储的是历史数据,所以大部分都是只读操作,不需要事务。

Hive与Hadoop的关系

HIve与传统数据库对比

  Hive RDBMS
查询语句 HQL SQL
数据存储 HDFS Raw Device Or Local FS
执行 MapReduce Excutor
执行延迟
处理数据规模
索引 0.8版本后加入位图索引 有复杂的索引

Hive适用场景

Hive构建在基于静态(离线)批处理的Hadoop之上,Hadoop通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive在几百MB的数据集上执行查询一般有分钟级的时间延迟。因此,Hive并不适合那些需要低延迟的应用,例如,联机事物处理(OLTP)。Hive将用户的HiveQl语句通过解释器转换为MapReduce作业提交到Hadoop集群上,Hadoop监控作业执行过程,然后返回作业执行结果给用户。Hive并非为联机事物处理而设计,Hive并不提供实时的查询和基于行级的数据更新操作。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 中的数据进行批量分析。

www.htsjk.Com true http://www.htsjk.com/hive/35334.html NewsArticle Hive介绍, Hive概述 HIve是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张表,并提供完整的 sql查询功能 , 可以 将sql语句转换为MapReduce任务进行运行 。 可以通过类...
相关文章
    暂无相关文章
评论暂时关闭