轉自:https://blog.csdn.net/ooc_zc/article/details/50444222
Hive:
Hive不支持更改數據的操作,Hive基於數據倉庫,提供靜態數據的動態查詢。其使用類SQL語言,底層經過編譯轉爲MapReduce程序,在Hadoop上運行,數據存儲在HDFS上。
HDFS:
HDFS是GFS的一種實現,他的完整名字是分佈式文件系統,類似於FAT32,NTFS,是一種文件格式,是底層的。
Hive與Hbase的數據一般都存儲在HDFS上。Hadoop HDFS爲他們提供了高可靠性的底層存儲支持。
Hbase:
Hbase是Hadoop database,即Hadoop數據庫。它是一個適合於非結構化數據存儲的數據庫,HBase基於列的而不是基於行的模式。
HBase是Google Bigtable的開源實現,類似Google Bigtable利用GFS作爲其文件存儲系統,HBase利用Hadoop HDFS作爲其文件存儲系統;Google運行MapReduce來處理Bigtable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據。
Hadoop HDFS爲HBase提供了高可靠性的底層存儲支持,Hadoop MapReduce爲HBase提供了高性能的計算能力,Zookeeper爲HBase提供了穩定服務和failover機制。Pig和Hive還爲HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的非常簡單。 Sqoop則爲HBase提供了方便的RDBMS(關係型數據庫)數據導入功能,使得傳統數據庫數據向HBase中遷移變的非常方便。
Pig:
Pig的語言層包括一個叫做PigLatin的文本語言,Pig Latin是面向數據流的編程方式。Pig和Hive類似更側重於數據的查詢和分析,底層都是轉化成MapReduce程序運行。
區別是Hive是類SQL的查詢語言,要求數據存儲於表中,而Pig是面向數據流的一個程序語言。