Pig,Hive,HBase之间的关系以及使用场景描述

作者: admin 分类: Hadoop 发布时间: 2018-03-08 11:56  阅读: 444 views

 

先简单整理下这三个架构的基本知识。

Pig是一种数据流语言,为大型数据集的处理提供了更高层次的抽象,可以快速轻松的处理巨大的数据。当想在数据上做一些转换,并不想编写MapReduce jobs就可以用Pig.

Hive是一个构建在Hadoop上的数据仓库框架,是应Facebook每天产生的海量新兴社会网络数据进行管理和机器学习的需求而产生和发展的。当有数据仓库的需求而且又擅长SQL编写不想写MapReduce jobs就可以用Hive代替。

HBase是一个在HDFS上开发的面向列的分布式数据库,可以实时地随机访问超大规模数据集。它是一个NoSql数据库。当需要实时访问数据时,就可以用HBase存储并访问。

 

 


区别

1.Hive中的表示纯逻辑表,只是表的定义,Hive本身不存储数据,完全依赖于HDFS和MapReduce。可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,将SQL转化为MapReduce任务进行运行。而HBase表示物理表,适合存放非结构化的数据。

Hive是一个框架,Hbase是一个NoSQL数据库

2.Hive是基于MapReduce来处理数据,基于行的模式;HBase是基于列的模式,支持海量数据随机访问

3.Hive表是稠密型,定义了多少列,每一行都有存储固定列数的数据;HBase的表是疏松的存储,用户可以定义各种不同的列。

4.Hive使用Hadoop来分析处理数据,可能有低延时问题;HBase是近实时系统,可实时查询

5.Hive不提供 row-level更新;HBase支持row-level更新

6.Hive提供完整的SQL实现,通常用来做一些基于历史数据的挖掘、分析。HBase不适用于有join,多级索引,表关系复杂的应用场景。

7.Pig脚本会转化成MapReduce任务。Pig脚本比相应的MapReduce任务要短,显著缩短开发时间。

 

 

在大数据架构中,Hive和HBase是协作关系,数据流一般如下:

1.通过ETL工具将数据源抽取到HDFS存储

2.通过Hive清洗,处理和计算原始数据

3.Hive清洗处理后的结果,如果是海量数据随机查询,可以存入HBase

4.数据应用从HBase查询数据。


 

适用场景

Pig适用于非结构化的数据集,可以充分利用SQL,Pig无需构建MapReduce任务。

Hive适用于网络日志等数据量大、静态的数据查询。如:用户消费行为记录,网站访问足迹等。不适用于联机实时在线查询的场合。

HBase能在大数据联机实时查询场合体现优势


   原创文章,转载请标明本文链接: Pig,Hive,HBase之间的关系以及使用场景描述

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注