1、hadoop:它是一個分散式計算+分散式檔案系統,前者其實就是MapReduce,後者是HDFS。後者可以獨立執行,前者可以選擇性使用,也可以不使用
2、hive:通俗的說是一個數據倉庫,倉庫中的資料是被hdfs管理的資料檔案,它支援類似sql語句的功能,你可以透過該語句完成分散式環境下的計算功能,hive會把語句轉換成MapReduce,然後交給hadoop執行。這裡的計算,僅限於查詢和分析,而不是更新、增加和刪除。它的優勢是對歷史資料進行處理,用時下流行的說法是離線計算,因為它的底層是MapReduce,MapReduce在實時計算上效能很差。它的做法是把資料檔案載入進來作為一個hive表(或者外部表),讓你覺得你的sql操作的是傳統的表。
3、hbase:通俗的說,hbase的作用類似於資料庫,傳統資料庫管理的是集中的本地資料檔案,而hbase基於hdfs實現對分散式資料檔案的管理,比如增刪改查。也就是說,hbase只是利用hadoop的hdfs幫助其管理資料的持久化檔案(HFile),它跟MapReduce沒任何關係。hbase的優勢在於實時計算,所有實時資料都直接存入hbase中,客戶端透過API直接訪問hbase,實現實時計算。由於它使用的是nosql,或者說是列式結構,從而提高了查詢效能,使其能運用於大資料場景,這是它跟MapReduce的區別。
總結:hadoop是hive和hbase的基礎,hive依賴hadoop,而hbase僅依賴hadoop的hdfs模組。hive適用於離線資料的分析,操作的是通用格式的(如通用的日誌檔案)、被hadoop管理的資料檔案,它支援類sql,比編寫MapReduce的java程式碼來的更加方便,它的定位是資料倉庫,儲存和分析歷史資料hbase適用於實時計算,採用列式結構的nosql,操作的是自己生成的特殊格式的HFile、被hadoop管理的資料檔案,它的定位是資料庫,或者叫DBMS
最後補充一下:hive可以直接操作hdfs中的檔案作為它的表的資料,也可以使用hbase資料庫作為它的表
1、hadoop:它是一個分散式計算+分散式檔案系統,前者其實就是MapReduce,後者是HDFS。後者可以獨立執行,前者可以選擇性使用,也可以不使用
2、hive:通俗的說是一個數據倉庫,倉庫中的資料是被hdfs管理的資料檔案,它支援類似sql語句的功能,你可以透過該語句完成分散式環境下的計算功能,hive會把語句轉換成MapReduce,然後交給hadoop執行。這裡的計算,僅限於查詢和分析,而不是更新、增加和刪除。它的優勢是對歷史資料進行處理,用時下流行的說法是離線計算,因為它的底層是MapReduce,MapReduce在實時計算上效能很差。它的做法是把資料檔案載入進來作為一個hive表(或者外部表),讓你覺得你的sql操作的是傳統的表。
3、hbase:通俗的說,hbase的作用類似於資料庫,傳統資料庫管理的是集中的本地資料檔案,而hbase基於hdfs實現對分散式資料檔案的管理,比如增刪改查。也就是說,hbase只是利用hadoop的hdfs幫助其管理資料的持久化檔案(HFile),它跟MapReduce沒任何關係。hbase的優勢在於實時計算,所有實時資料都直接存入hbase中,客戶端透過API直接訪問hbase,實現實時計算。由於它使用的是nosql,或者說是列式結構,從而提高了查詢效能,使其能運用於大資料場景,這是它跟MapReduce的區別。
總結:hadoop是hive和hbase的基礎,hive依賴hadoop,而hbase僅依賴hadoop的hdfs模組。hive適用於離線資料的分析,操作的是通用格式的(如通用的日誌檔案)、被hadoop管理的資料檔案,它支援類sql,比編寫MapReduce的java程式碼來的更加方便,它的定位是資料倉庫,儲存和分析歷史資料hbase適用於實時計算,採用列式結構的nosql,操作的是自己生成的特殊格式的HFile、被hadoop管理的資料檔案,它的定位是資料庫,或者叫DBMS
最後補充一下:hive可以直接操作hdfs中的檔案作為它的表的資料,也可以使用hbase資料庫作為它的表