1. 程式人生 > >分析挖掘(大資料):hive、impala、 Spark MLlib概述、原理

分析挖掘(大資料):hive、impala、 Spark MLlib概述、原理

hive

Hive是一個構建於Hadoop頂層的資料倉庫工具,支援大規模資料儲存、分析,具有良好的可擴充套件性。某種程度上可以看作是使用者程式設計介面,本身不儲存和處理資料依賴分散式檔案系統HDFS儲存資料,依賴分散式平行計算模型MapReduce處理資料。

定義了簡單的類似SQL 的查詢語言——HiveQL,使用者可以通過編寫的HiveQL語句執行MapReduce任務,可以很容易把原來構建在關係資料庫上的資料倉庫應用程式移植到Hadoop平臺上。(是一個可以提供有效、合理、直觀組織和使用資料的分析工具

(1)Hive與傳統資料庫的區別

對比專案

Hive

傳統資料庫

資料插入

支援批量匯入

支援單條

和批量匯入

資料更新

不支援

支援

索引

支援

支援

分割槽

支援

支援

執行延遲

擴充套件性

有限

(2)Hive系統架構

使用者介面模組、驅動模組、元資料儲存模組。


使用者介面模組包括CLIHWIJDBCODBCThrift Server

驅動模組(Driver包括編譯器、優化器、執行器等,負責把HiveSQL語句轉換成一系列MapReduce作業。

元資料儲存模組(Metastore是一個獨立的關係型資料庫(自帶derby資料庫,或MySQL資料庫)。是由Cloudera公司開發的新型查詢系統,它提供SQL語義,能查詢儲存在HadoopHDFSHBase上的PB級大資料,在效能上比Hive高出3~30倍。

(自帶derby資料庫,或
MySQL資料庫)。是由Cloudera公司開發的新型查詢系統,它提供SQL語義,能查詢儲存在HadoopHDFSHBase上的PB級大資料,在效能上比Hive高出3~30倍。

 Impala

Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL語義,能查詢儲存在Hadoop的HDFS和HBase中的PB級大資料,已有的Hive系統雖然也提供了SQL語義,但由於Hive底層執行使用的是MapReduce引擎,仍然是一個批處理過程,難以滿足查詢的互動性。相比之下,Impala的最大特點也是最大賣點就是它的快速。

Impala與hive對比:

相同點:1)Hive與Impala使用相同的儲存資料池,都支援把資料儲存於HDFS和HBase中。

2)Hive與Impala使用相同的元資料。

3)Hive與Impala中對SQL的解釋處理比較相似,都是通過詞法分析生成執行計劃。

不同點:

1)Hive適合於長時間的批處理查詢分析,而Impala適合於實時互動式SQL查詢。

2)Hive依賴於MapReduce計算框架,Impala把執行計劃表現為一棵完整的執行計劃樹,直接分發執行計劃到各個Impalad執行查詢。

3)Hive在執行過程中,如果記憶體放不下所有資料,則會使用外存,以保證查詢能順序執行完成,而Impala在遇到記憶體放不下資料時,不會利用外存,所以Impala目前處理查詢時會受到一定的限制。

總結:

1)Impala的目的不在於替換現有的MapReduce工具

2)把Hive與Impala配合使用效果最佳

3)可以先使用Hive進行資料轉換處理,之後再使用Impala在Hive處理後的結果資料集上進行快速的資料分

Spark Mlib


park Mlib是基於Spark的可擴充套件的機器學習庫,由以下部分組成:通用學習演算法和工具類,包括分類、迴歸、劇烈、協同過濾等。