區分 hdfs hbase hive hbase適用場景

Hive html

不想用程序語言開發MapReduce的朋友好比DB們,熟悉SQL的朋友可使用Hive開離線的進行數據處理與分析工做。數據庫

注意Hive如今適合在離線下進行數據的操做,就是說不適合在掛在真實的生產環境中進行實時的在線查詢或操做,由於一個字「慢」。相反架構

起源於FaceBook,Hive在Hadoop中扮演數據倉庫的角色。創建在Hadoop集羣的最頂層,對存儲在Hadoop羣上的數據提供類SQL的接口進行操做。你能夠用 HiveQL進行select,join,等等操做。dom

若是你有數據倉庫的需求而且你擅長寫SQL而且不想寫MapReduce jobs就能夠用Hive代替。分佈式

HBase ide

HBase做爲面向列的數據庫運行在HDFS之上,HDFS缺少隨即讀寫操做,HBase正是爲此而出現。HBase以Google BigTable爲藍本,以鍵值對的形式存儲。項目的目標就是快速在主機內數十億行數據中定位所需的數據並訪問它。 工具

HBase是一個數據庫,一個NoSql的數據庫,像其餘數據庫同樣提供隨即讀寫功能,Hadoop不能知足實時須要,HBase正能夠知足。若是你須要實時訪問一些數據,就把它存入HBaseoop

你能夠用Hadoop做爲靜態數據倉庫,HBase做爲數據存儲,放那些進行一些操做會改變的數據。大數據

 hbase與hive都是架構在hadoop之上的。都是用hadoop做爲底層存儲。而hbase是做爲分佈式數據庫,而hive是做爲分佈式數據倉庫。固然hive仍是借用hadoop的MapReduce來完成一些hive中的命令的執行。


  1. 什麼場景下應用Hbase?google

  • 成熟的數據分析主題,查詢模式已經確立,而且不會輕易改變。

  • 傳統的關係型數據庫已經沒法承受負荷,高速插入,大量讀取。

  • 適合海量的,但同時也是簡單的操做(例如:key-value)。

官方解釋:

Use Apache HBase™ when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware. Apache HBase is an open-source, distributed, versioned, non-relational database modeled after Google's Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, Apache HBase provides Bigtable-like capabilities on top of Hadoop and HDFS.

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高效的多。

相關文章
相關標籤/搜索