分析挖掘(大數據):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的可擴展的機器學習庫,由以下部分組成:通用學習算法和工具類,包括分類、迴歸、劇烈、協同過濾等。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章