標籤:
企業級大資料處理方案有三種業務情境:
1.離線處理;(mapreduce(第一代)、sparksql(第二代))
2.即時處理;(資料庫操作、storm)
3.准即時處理。(spark Streaming)
mapreduce與spark對比
mr與spark優缺點對比:(一)
a.mapreduce頻繁的資料讀寫,使資料處理速度滯後
b.spark所有計算在記憶體中消除了,磁碟讀寫此快其一
mr與spark優缺點對比:(二)
a.mapreduce每一個計算過程與上一個計算過程無血統繼承
b.spark步步操作均有血統繼承關係,ageline機制,可以追溯到資料來源或者checkpoint(lazy層級)容錯性與架構的自動最佳化
mr與spark優缺點對比:(三)
程式啟動並執行可視化,spark有DAG圖
streaming和storm對比
streaming和storm優缺點對比:(一)
a.storm計算相當於電流,這邊進那邊就要出
b.streaming為了提高輸送量,引進了批處理,犧牲了即時性,增加了輸送量
streaming和storm優缺點對比:(二)
a.storm拓撲計算模式(有向非循環圖)
b.streamingDAG圖,流式計算,中間資料交換可以調用豐富的計算架構,sql和ml和graphX
傳統資料庫即時操作與大資料技術對比:
a.雖然即時,但是資料量大時,無法解決,速度就降了下來
b.大資料技術,解決了大資料,犧牲了即時
綜上所述:任何技術都不是完美的,為了一方面就必然犧牲另一方面,人無完人。輸送量與即時的取捨,記憶體與速度的取捨。--當即時處理的資料量的能力提高,離線處理還有存在的必要嗎?如果資料處理不能即時性,必然影響資料的價值。大資料的核心價值:資料採礦和資料分析最終為資料消費者的行為和決策力服務。
繼續反思:既然每種大資料處理技術都有缺陷,那怎樣才能達到我們心中的完美效果呢?
三國曹操選用人才的方略-物盡其才,只要你有才,是不會讓你埋沒的。
所以大資料處理方案不是單純的某種技術的天下,而是各分塊的緊密結合,優勢互補,進而達到理想的效果。所以,必須瞭解技術的優勢和使用情境,才能在實際的業務情境中,挑選合適的技術。就現在而言:
1.Hadoop只能用作儲存和資源管理
2.spark只能作為計算,(只計算)
3.storm只計算
4.kafka資料緩衝層(平衡流式資料量的過大過小)
5.flume採集
7.Tachyon分布式記憶體檔案系統(alluxio)
8.redis、mongoDB分布式記憶體資料庫
9.即時搜尋引擎solr和lucene
基本上資料處理的主流技術都在這了,上文雖然都是一種,但是每類技術都有多種,用途都是一樣,只是情境和處理邏輯不同。那如何構建企業級大資料處理,且看下回。
企業級大資料處理方案-01