Hive
Hive用SQL的方式去描述MapReduce。
会写SQL基本就能够写出MapReduce出来了,解放了数据分析人员。
Hive在Hadoop中是数据仓库的角色。建立在Hadoop集群的最顶层,面向行存储。 ,对存储在Hadoop群上的数据提供类SQL的接口进行操作,本身不存储和计算数据,
它完全依赖于HDFS和MapReduce。
你可以用 HiveQL进行select,join,等等类似于SQL的操作。
如果你有数据仓库的需求并且你擅长写SQL并且不想写MapReduce jobs就可以用Hive代替。
但是,在HDFS上运行HIVE还是很慢的,由此衍生出了。
Impala,Presto,Drill这样的运行在HDFS在上的SQL引擎。
Pig
Pig是接近脚本方式去描述MapReduce,
Pig是一种数据流语言,用来快速轻松的处理巨大的数据。Pig包含两个部分:Pig Interface,Pig Latin。
Pig可以非常方便的处理HDFS和HBase的数据,和Hive一样,Pig可以非常高效的处理其需要做的,通过直接操作Pig查询可以节省大量的劳动和时间。这里PIG就类似于脚本语言。
当你想在你的数据上做一些转换,并且不想编写MapReduce jobs就可以用Pig.
Pig和Hive的区别
它们把脚本和SQL语言翻译成MapReduce程序,丢给计算引擎去计算,而你就从繁琐的MapReduce程序中解脱出来,用更简单更直观的语言去写程序了。
共同点是两者目的都是将MapReduce的实现进行简化,并且读写操作数据最终都是存储在HDFS分布式文件系统上。
Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使 其成为Hadoop与其他BI工具结合的理想交集。
Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的 应用程序。
Pig相比Hive相对轻量,它主要的优势是相比于直接使用Hadoop Java APIs可大幅削减代码量。正因为如此,Pig仍然是吸引大量的软件开发人员。
Hive和Pig都可以与HBase组合使用,Hive和Pig还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单
HBase
HBase是建造在HDFS基础上的分布式数据库,可以支持海量数据(比MySQL高一到两个量级)的存储和查询,查询效率很高。
HBase为查询而生的,它通过组织起节点内所有机器的內存,提供一超大内存Hash表,它需要组织自己的数据结构,包括磁盘和内中的,而Hive是不做这个的,表在HBase中是物理表,而不是逻辑表,搜索引擎使用它来存储索引,以满足查询的实时性需求。
HBase作为面向列的数据库运行在HDFS之上,不支持sql。HDFS缺乏随即读写操作,HBase正是为此而出现。HBase以Google BigTable为蓝本,以键值对的形式存储。
你可以用Hadoop作为静态数据仓库,HBase作为数据存储,放那些进行一些操作会改变的数据。
Hive和HBase的区别
Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
两种情况:
全表扫描,就用Hive+Hadoop,
索引访问,就用HBase+Hadoop 。
hive是高延迟、结构化和面向分析的。
hbase是低延迟、非结构化和面向编程的。
原文链接:Hive,Pig,Hbase总结,转载请注明来源!