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的运作关系。
当用户创建了一个新的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提供批处理支持。
这种模式下使用Spark,尽管有效,也会有很多弊端。比如,任务的打包和提交,存储数据的读取和写入,都会造成延迟。Spark通过SparkContext类将数据存储在内存中以减少IO消耗。Spark所缺少的是一种方式,支持应用与长期存活SparkContext交互。
Toree提供了所有Spark API应用和SparkContext之间的通信渠道。通过这个渠道,应用与Spark之间通过代码与数据交换实现交互。 Jupyter Notebook就是运用Toree和现成的交互通道连接到Spark的一个很好的示例。其他Spark兼容的应用也可以通过0MQ协议直接连Toree。当然也还有其他方式。
如上图所示,Jupyter Kernel Gateway可以发布基于Toree的网络套件。这使得Toree更易于集成。结合Jupyter-js-services包,其他网络应用可以直接与Spake交互。Jupyter Dashboard Server是一个很好的以Toree作为后端的网络运用。