顛覆大數據分析之Shark:分布式係統上的SQL接口
內存計算已經成為了海量數據分析的一個重要範式。這一點可以從兩個方麵來進行理解。一方麵,盡管當要查詢的數據達到了PB級,但是由於時間和空間的局限性,在一個集群環境上僅需64GB的緩存就能夠滿足絕大多數的查詢(95%)。Ananthanarayanan等人在一次研究中發現了這點。另一方麵,由於機器學習算法需要在數據的工作集上進行迭代,如果工作數據集在內存中,它的實現會變得非常高效。Shark本質上可以看作是一個內存型的分布式SQL係統。
Shark基於Spark提供了SQL接口。Shark的主要特性就是它的SQL接口以及它能夠基於機器學習來進行分析的能力,同時還有它為SQL查詢和機器學習算法所提供的細粒度的容錯性。對於查詢而言,即使是粗粒度的RDD也能工作得很好,因為Shark可以從失敗中進行恢複,它會去重新構造集群中丟失的RDD分區。這個恢複是細粒度的,這意味著它可以在查詢的過程中進行恢複,並不像並行數據庫係統那樣得重新執行整個查詢。
最後更新:2017-05-22 20:03:14