##[pdf]Apache Toree工作原理

weixin_34321977發表於2017-03-19

Apache Toree工作原理 - qq_34342386的部落格 - 部落格頻道 - CSDN.NET http://blog.csdn.net/qq_34342386/article/details/53322131

原文地址:https://toree.incubator.apache.org/documentation/user/how-it-works.html
此文為翻譯Apache Toree的官方文件
How it works
Toree提供了一個與Spark叢集互動式程式設計的介面。Torre的API支援多種語言和和執行程式。使用者可通過互動式程式和Spark Context實現Spark任務。 為了更清楚的瞭解Torre的工作原理,我們將去探索在在各種場景中扮演的角色。
As a Kernelto Jupyter Notebooks
Toree的首要角色是作為Jupyter的核心。Torre最初建立的目的就是為了將Spark API支援服務載入到Jupyter Notebook中以使用Scala語言。現在Torre已經發展為可以支援Python和R。下圖解釋了Toree和Jupyter Notebook的運作關係。

2569324-009a4e9ece8e20f1

當使用者建立了一個新的Notebook和選擇了Toree後,Notebook server幾條一個配置到Spark叢集的Toree程式。在Notebook中,使用者可以通過編寫程式呼叫Spak Context示例實現與Spark的互動。
Notebook Server和Toree用Jupyter Kernel協議聯絡。這個協議不限制互動語言,允許客戶端和核之間雙向通訊。這個協議是Toree程式通訊的唯一介面。
當通過Jupyter Notebook使用Toree時,這些技術細節會被隱藏,當建立客戶端的時候他們就至關重要了。
作為Spark互動式的門戶
與其他大資料系統相類似的是,Spark經常被使用到的用於批處理。比如Hadoop,在批處理模式下使用者需要編寫程式提交到叢集。程式在叢集上執行,最終將資料寫進永久儲存器中。Spark通過Spark Submit提供批處理支援。

2569324-c3c351b8dc565ea3

這種模式下使用Spark,儘管有效,也會有很多弊端。比如,任務的打包和提交,儲存資料的讀取和寫入,都會造成延遲。Spark通過SparkContext類將資料儲存在記憶體中以減少IO消耗。Spark所缺少的是一種方式,支援應用與長期存活SparkContext互動。

2569324-58e1217a6122cf41

Toree提供了所有Spark API應用和SparkContext之間的通訊渠道。通過這個渠道,應用與Spark之間通過程式碼與資料交換實現互動。 Jupyter Notebook就是運用Toree和現成的互動通道連線到Spark的一個很好的示例。其他Spark相容的應用也可以通過0MQ協議直接連Toree。當然也還有其他方式。

2569324-fe18df2cc0394198

如上圖所示,Jupyter Kernel Gateway可以釋出基於Toree的網路套件。這使得Toree更易於整合。結合Jupyter-js-services包,其他網路應用可以直接與Spake互動。Jupyter Dashboard Server是一個很好的以Toree作為後端的網路運用。