Linux中國

Cassandra 和 Spark 數據處理一窺

Apache Cassandra 資料庫近來引起了很多的興趣,這主要源於現代雲端軟體對於可用性及性能方面的要求。

那麼,Apache Cassandra 是什麼?它是一種為高可用性及線性可擴展性優化的分散式的聯機交易處理 (OLTP) 資料庫。具體說到 Cassandra 的用途時,可以想想你希望貼近用戶的系統,比如說讓我們的用戶進行交互的系統、需要保證實時可用的程序等等,如:產品目錄,物聯網,醫療系統,以及移動應用。對這些程序而言,下線時間意味著利潤降低甚至導致其他更壞的結果。Netfilix 是這個在 2008 年開源的項目的早期使用者,他們對此項目的貢獻以及帶來的成功讓這個項目名聲大噪。

Cassandra 於2010年成為了 Apache 軟體基金會的頂級項目,並從此之後就流行起來。現在,只要你有 Cassadra 的相關知識,找工作時就能輕鬆不少。想想看,NoSQL 語言和開源技術能達到企業級 SQL 技術的高度,真讓人覺得十分瘋狂而又不可思議的。這引出了一個問題。是什麼讓它如此的流行?

由於採用了亞馬遜發表的 Dynamo 論文中率先提出的設計,Cassandra 有能力在大規模的硬體及網路故障時保持實時在線。由於採用了點對點模式,在沒有單點故障的情況下,我們能倖免於機架故障甚至全網中斷。我們能在不影響用戶體驗的前提下處理數據中心故障。一個能考慮到故障的分散式系統才是一個沒有後顧之憂的分散式系統,因為老實說,故障是遲早會發生的。有了 Cassandra, 我們可以直面殘酷的生活並將之融入資料庫的結構和功能中。

我們能猜到你現在在想什麼,「但我只有關係資料庫相關背景,難道這樣的轉變不會很困難嗎?」這問題的答案介於是和不是之間。使用 Cassandra 建立數據模型對有關係資料庫背景的開發者而言是輕車熟路。我們使用表格來建立數據模型,並使用 CQL ( Cassandra 查詢語言)來查詢資料庫。然而,與 SQL 不同的是,Cassandra 支持更加複雜的數據結構,例如嵌套和用戶自定義類型。舉個例子,當要儲存對一個小貓照片的點贊數目時,我們可以將整個數據儲存在一個包含照片本身的集合之中從而獲得更快的順序查找而不是建立一個獨立的表。這樣的表述在 CQL 中十分的自然。在我們照片表中,我們需要記錄名字,URL以及給此照片點贊過的人。

在一個高性能系統中,毫秒級處理都能對用戶體驗和客戶維繫產生影響。昂貴的 JOIN 操作制約了我們通過增加不可預見的網路調用而擴容的能力。當我們將數據反範式化使其能通過儘可能少的請求就可獲取時,我們即可從磁碟空間成本的降低中獲益並獲得可預期的、高性能應用。我們將反範式化同 Cassandra 一同介紹是因為它提供了很有吸引力的的折衷方案。

很明顯,我們不會局限於對於小貓照片的點贊數量。Canssandra 是一款為高並發寫入優化的方案。這使其成為需要時常吞吐數據的大數據應用的理想解決方案。實時應用和物聯網方面的應用正在穩步增長,無論是需求還是市場表現,我們也會不斷的利用我們收集到的數據來尋求改進技術應用的方式。

這就引出了我們的下一步,我們已經提到了如何以一種現代的、性價比高的方式儲存數據,但我們應該如何獲得更多的動力呢?具體而言,當我們收集到了所需的數據,我們應該怎樣處理呢?如何才能有效的分析幾百 TB 的數據呢?如何才能實時的對我們所收集到的信息進行反饋,並在幾秒而不是幾小時的時間利作出決策呢?Apache Spark 將給我們答案。

Spark大數據變革中的下一步。 Hadoop 和 MapReduce 都是革命性的產品,它們讓大數據界獲得了分析所有我們所取得的數據的機會。Spark 對性能的大幅提升及對代碼複雜度的大幅降低則將大數據分析提升到了另一個高度。通過 Spark,我們能大批量的處理計算,對流處理進行快速反應,通過機器學習作出決策,並通過圖遍歷來理解複雜的遞歸關係。這並非只是為你的客戶提供與快捷可靠的應用程序連接(Cassandra 已經提供了這樣的功能),這更是能洞悉 Canssandra 所儲存的數據,作出更加合理的商業決策並同時更好地滿足客戶需求。

你可以看看 Spark-Cassandra Connector (開源) 並動手試試。若想了解更多關於這兩種技術的信息,我們強烈推薦名為 DataStax Academy 的自學課程

via: https://opensource.com/life/16/5/basics-cassandra-and-spark-data-processing

作者:Jon Haddad,Dani Traphagen 譯者:KevinSJ 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國