稍微理清下几者之间的关系与区别。linux
转载:http://www.linuxidc.com/Linux/2014-03/98978.htm。数据库
Pig工具
一种操做hadoop的轻量级脚本语言,最初又雅虎公司推出,不过如今正在走下坡路了。当初雅虎本身慢慢退出pig的维护以后将它开源贡献到开源社区由全部爱好者来维护。不过如今仍是有些公司在用,不过我认为与其使用pig不如使用hive。:)oop
Pig是一种数据流语言,用来快速轻松的处理巨大的数据。大数据
Pig包含两个部分:Pig Interface,Pig Latin。spa
Pig能够很是方便的处理HDFS和HBase的数据,和Hive同样,Pig能够很是高效的处理其须要作的,经过直接操做Pig查询能够节省大量的劳动和时间。当你想在你的数据上作一些转换,而且不想编写MapReduce jobs就能够用Pig.htm
Hive索引
不想用程序语言开发MapReduce的朋友好比DB们,熟悉SQL的朋友可使用Hive开离线的进行数据处理与分析工做。接口
注意Hive如今适合在离线下进行数据的操做,就是说不适合在挂在真实的生产环境中进行实时的在线查询或操做,由于一个字“慢”。相反hadoop
起源于FaceBook,Hive在Hadoop中扮演数据仓库的角色。创建在Hadoop集群的最顶层,对存储在Hadoop群上的数据提供类SQL的接口进行操做。你能够用 HiveQL进行select,join,等等操做。
若是你有数据仓库的需求而且你擅长写SQL而且不想写MapReduce jobs就能够用Hive代替。
HBase
HBase做为面向列的数据库运行在HDFS之上,HDFS缺少随即读写操做,HBase正是为此而出现。HBase以Google BigTable为蓝本,以键值对的形式存储。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。
HBase是一个数据库,一个NoSql的数据库,像其余数据库同样提供随即读写功能,Hadoop不能知足实时须要,HBase正能够知足。若是你须要实时访问一些数据,就把它存入HBase。
你能够用Hadoop做为静态数据仓库,HBase做为数据存储,放那些进行一些操做会改变的数据。
Pig VS Hive
Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及须要常常分析的工做。Hive与SQL类似促使 其成为Hadoop与其余BI工具结合的理想交集。
Pig赋予开发人员在大数据集领域更多的灵活性,并容许开发简洁的脚本用于转换数据流以便嵌入到较大的 应用程序。
Pig相比Hive相对轻量,它主要的优点是相比于直接使用Hadoop Java APIs可大幅削减代码量。正由于如此,Pig仍然是吸引大量的软件开发人员。
Hive和Pig均可以与HBase组合使用,Hive和Pig还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的很是简单
Hive VS HBase
Hive是创建在Hadoop之上为了减小MapReduce jobs编写工做的批处理系统,HBase是为了支持弥补Hadoop对实时操做的缺陷的项目 。
想象你在操做RMDB数据库,若是是全表扫描,就用Hive+Hadoop,若是是索引访问,就用HBase+Hadoop 。
Hive query就是MapReduce jobs能够从5分钟到数小时不止,HBase是很是高效的,确定比Hive高效的多。