Hive,Hbase,HDFS,MapReduce等之間的關係
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(關係型資料庫)資料匯入功能,使得
Pig:
Pig的語言層包括一個叫做PigLatin的文字語言,Pig Latin是面向資料流的程式設計方式。Pig和Hive類似更側重於資料的查詢和分析,底層都是轉化成MapReduce程式執行。
區別是Hive是類SQL的查詢語言,要求資料儲存於表中,而Pig是面向資料流的一個程式語言。
Sqoop: Sqoop則為HBase提供了方便的RDBMS資料匯入功能,使得傳統資料庫資料向HBase中遷移變的非常方便。