大數據知識二-大數據組件

  1. 離線計算組件

1.1 hive 
hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供簡單的sql查詢功能,可以將sql語句轉換爲MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。但是在轉換爲MapReduce的計算過程中,計算速度比較慢,適合於非實時性的要求的計算。 
1.2 impala 
impala是Cloudera公司開發的一套大數據計算引擎,它在功能作用上類似hive,但是impala的內部計算模式並沒有採用Hive+MapReduce批處理模式,而是通過使用與商用並行關係數據庫中類似的分佈式查詢引擎,impala是基於內存計算,對內存的要求相比於hive+MapReduce模式會更高些。在對大數據量查詢時,impala會比hive更能及時的響應返回結果。 據說Impala在性能上比Hive高出3~30倍。 
所以Hive適合於長時間的批處理查詢分析,而Impala適合於實時交互式SQL查詢,Impala給數據分析人員提供了快速實驗、驗證想法的大數據分析工具。 
1.3 spark SQL 
sparkSQL 是spark處理結構化數據的庫,它是一種新的計算引擎,它在功能作用上類似hive和impala。spark擴充了的MapReduce計算模型,MapReduce通常將中間結果放到磁盤上,所以與磁盤交互比較多,性能上相對於差些,而Spark是基於內存並行大數據框架,中間結果通常存放在內存,相比於MapReduce來說,迭代數據計算的Spark效率會更高些。 
據說在計算性能上比hive高出10~100倍。 
2. 流式計算組件

2.1 Strom 
Storm是一個流式計算處理框架,擁有低延遲、高性能、分佈式、可擴展、容錯等特性,可以保證消息不丟失,消息處理嚴格有序。通俗講,storm是處理消息源,來一條消息數據,處理一條數據,實現實時響應計算結果,支持亞秒級響應,正真意義上流計算實時響應。 
2.2 Spark streaming 
Spark Streaming類似於 Storm,也是一個流式計算處理框架,用於流式數據的處理。有高吞吐量和容錯能力強這兩個特點。通俗講,Spark Streaming是實時處理小批量數據, 
Spark Streaming接收消息源的一條消息,不像Strom一樣及時處理了,而是當消息數據積累達到一定量的時候再一併處理消息數據,實現秒級響應。 
如果對實時性要求非常高的,例如需要亞秒級響應結果的場景 ,建議的使用Strom,而 
如果對於實時性不是非常嚴格,例如能在秒級內能響應結果的場景,可以使用Spark streaming。

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