Jupyter Notebook通过toree配置PySpark开发环境及其工作原理

近日在学习spark的时候,翻遍网络上各种教程都没办法将jupyter上的PySpark开发环境架设好,痛苦不堪。经班里大佬指点,使用toree后终于完成PySpark以及其他kernel的添加。

下面介绍增加方法以及网上搜索到的原理

 

安装

根据Spark Kernel的介绍,自从Spark Kernel变成Apache的孵化项目后,其最新仓库已经 迁移到了incubator-toree

安装时,参照Quick Start What is Apache Toree ,仅需两条命令即可完成安装

pip install toree
jupyter toree install --spark_home=your-spark-home

 

原理 

转载至http://blog.csdn.net/qq_34342386/article/details/53322131

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作为后端的网络运用。

 

 

 

转载于:https://www.cnblogs.com/zekaluo/p/7550802.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值