在Docker中运行Jupyter/Spark/Mesos服务。
来源[英]:https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook
Spark on Docker,基于Jupyter Notebook Python, Scala, R, Spark, Mesos技术栈,提供一个远程操作的模型和任务编写Web界面,采用Python界著名的Ipython Notebook格式,非常简洁、友好。
集成的软件
- Jupyter Notebook 4.2.x
- Conda Python 3.x 和 Python 2.7.x 环境
- Conda R 3.2.x 环境
- Scala 2.10.x
- pyspark, pandas, matplotlib, scipy, seaborn, scikit-learn 预先安装在Python环境
- ggplot2, rcurl 原装在 R 环境
- Spark 1.6.0,运行在local模式,或者连接到 Spark workers的集群
- Mesos client 0.22 binary that can communicate with a Mesos master
- 非私有用户名
jovyan
(uid=1000, 可配置, 参见相应的选项) 在组users
(gid=100) ,拥有控制权在目录/home/jovyan
和/opt/conda
- tini 作为容器入口点, start-notebook.sh 作为启动命令
- 脚本 start-singleuser.sh 作为可选命令,运行Notebook server的single-user实例 , 是 JupyterHub 要求的
- Options for HTTPS, password auth, and passwordless
sudo
使用方法
使用下面的命令启动一个容器,Web服务在端口 8888,为配置授权(仅限私网内使用,不要配置在互联网和其他公共网上)。
docker run -d -p 8888:8888 jupyter/all-spark-notebook
一般情况下,需要访问宿主机中的数据资源,使用-v host-path:docker-path方式映射。
启动后在浏览器输入: http://127.0.0.1:8888即可访问。
启动Spark:Local Mode
使用Spark在小型的本地数据环境下的配置。
在Python Notebook:
- 运行一个容器,像上面那样。
- 打开一个Python 2 或 3 notebook。
- 创建
SparkContext在
local 模式。
例如,在notebook的第一个cell中,如下:
import pyspark
sc = pyspark.SparkContext('local[*]')
# do something to prove it works
rdd = sc.parallelize(range(1000))
rdd.takeSample(False, 5)
在 R Notebook:
- 运行一个容器,像上面那样。
- 打开一个 R notebook。
- 初始化
sparkR
,在local模式。 - 初始化
sparkRSQL
。
例如,在 R notebook的第一个cell中,如下:
library(SparkR)
sc <- sparkR.init("local[*]")
sqlContext <- sparkRSQL.init(sc)