起源於FaceBook,Hive在Hadoop中扮演數據倉庫的角色。創建在Hadoop集羣的最頂層,對存儲在Hadoop羣上的數據提供類SQL的接口進行操做。你能夠用 HiveQL進行select,join,等等操做。sql
若是你有數據倉庫的需求而且你擅長寫SQL而且不想寫MapReduce jobs就能夠用Hive代替。數據庫
1、hive是sql語言,經過數據庫的方式來操做hdfs文件系統,爲了簡化編程,底層計算方式爲mapreduce。編程
2、hive是面向行存儲的數據庫。分佈式
3、Hive自己不存儲和計算數據,它徹底依賴於HDFS和MapReduce,Hive中的表純邏輯。工具
4、hive只供維護用,真正查起來很是慢。oop
Hbase和hive它的底層都是經過mapreduce分佈式計算的。大數據
HBase做爲面向列的數據庫運行在HDFS之上,HDFS缺少隨即讀寫操做,HBase正是爲此而出現。HBase以Google BigTable爲藍本,以鍵值對的形式存儲。項目的目標就是快速在主機內數十億行數據中定位所需的數據並訪問它。搜索引擎
HBase是一個數據庫,一個NoSql的數據庫,像其餘數據庫同樣提供隨即讀寫功能,Hadoop不能知足實時須要,HBase正能夠知足。若是你須要實時訪問一些數據,就把它存入HBase。spa
你能夠用Hadoop做爲靜態數據倉庫,HBase做爲數據存儲,放那些進行一些操做會改變的數據。索引
1、HBase爲查詢而生的,它經過組織起節點內全部機器的內存,提供一個超大的內存Hash表
2、hbase不是關係型數據庫,而是一個在hdfs上開發的面向列的分佈式數據庫,不支持sql。
3、hbase是物理表,不是邏輯表,提供一個超大的內存hash表,搜索引擎經過它來存儲索引,方便查詢操做。
4、hbase是列存儲。
pigPig是一種數據流語言,用來快速輕鬆的處理巨大的數據。Pig包含兩個部分:Pig Interface,Pig Latin。Pig能夠很是方便的處理HDFS和HBase的數據,和Hive同樣,Pig能夠很是高效的處理其須要作的,經過直接操做Pig查詢能夠節省大量的勞動和時間。
當你想在你的數據上作一些轉換,而且不想編寫MapReduce jobs就能夠用Pig.
若是數據量符合hbase內存要求,確定hbase更快(由於它是物理內存)。
超過hbase要求,hive可能會比較好點。
Hive更適合於數據倉庫的任務,Hive主要用於靜態的結構以及須要常常分析的工做。Hive與SQL類似促使 其成爲Hadoop與其餘BI工具結合的理想交集。
Pig賦予開發人員在大數據集領域更多的靈活性,並容許開發簡潔的腳本用於轉換數據流以便嵌入到較大的 應用程序。
Pig相比Hive相對輕量,它主要的優點是相比於直接使用Hadoop Java APIs可大幅削減代碼量。正由於如此,Pig仍然是吸引大量的軟件開發人員。
Hive和Pig均可以與HBase組合使用,Hive和Pig還爲HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的很是簡單
Hive是創建在Hadoop之上爲了減小MapReduce jobs編寫工做的批處理系統,HBase是爲了支持彌補Hadoop對實時操做的缺陷的項目 。
想象你在操做RMDB數據庫,若是是全表掃描,就用Hive+Hadoop,若是是索引訪問,就用HBase+Hadoop 。
Hive query就是MapReduce jobs能夠從5分鐘到數小時不止,HBase是很是高效的,確定比Hive高效的多。