如何使用Apache Spark(pyspark)和Docker分发类
我正在build立一个全新的数据科学栈,供数据科学家和数据分析师在我们的工作环境中使用。
基本上我的结构如下:
- CDH安装在群集中的所有节点上(裸机)
- 在CDH发行中的Spark&YARN
- 具有多个组件的Docker容器映像:Anaconda,Python3,Spark(PySpark),Jupyter Notebook
现在,我最初的想法是在所有的工作节点上分配这个docker镜像的Python依赖关系,还包括在这个容器内部运行Spark作业所需的自定义库(例如:xgboost,numpy等)。 在Jupyter中进行交互式分析时,我的工作stream程如下:
- 创buildJupyter笔记本
- 初始化SparkContext并将主点指向YARN
- 使用自定义Python库代码运行Spark作业
现在,我想知道两件事情:
- Spark(在容器外部运行)将如何在所有工作节点上访问我自定义的Python库(Docker容器中的自定义代码)。
- 我如何分配这些自定义的图书馆和其他复杂的依赖关系? 我知道我们可以使用像sc.addPyFile('/ path / to / BoTree.py')或一个完整的.zip压缩文件,但是Docker有没有更简单的方法? 我没有使用Anaconda集群,所以我需要另一种方式来做到这一点。
谢谢
- 当部署模式是群集时,spark-submit代理主机/端口configuration不受尊重
- 火花提交到docker集装箱
- org.apache.spark.SparkException:因Yarn和Docker阶段失败而中止作业
- Docker中的Spark独立群集在networking“桥”
- pthread_create失败:MongoDB上的资源暂时不可用
- 连接火花大师通过docker组成火花奴隶
- docker集装箱映射到相同的端口
- 将一个jar提交到sequenceiq docker-spark容器
- 使用Docker容器在独立群集上Spark SPARK_PUBLIC_DNS和SPARK_LOCAL_IP