我已经在某些机器上安装了spark以在独立集群模式下使用它。所以现在我有一些机器,每个机器都有相同的spark构建版本(在hadoop 2.7+上构建的Spark 2.4.0)。
我想将此集群用于并行数据分析,并且我的运行语言是Python,所以我使用的是Pyspark而不是Spark。我已经创建了一些操作模块来处理数据并提供所需的形式。
但是,我不想手动复制我在每台计算机上创建的所有这些模块,因此我想知道PySpark中的哪个选项可以传递依赖项,因此对于每个执行者我确定模块存在吗?
我已经考虑过将被激活并安装模块的虚拟环境,但是我不知道如何在Spark Standalone模式下进行操作,而在YARN管理器中似乎是此选项,但是我不会安装YARN。
Ps。注意:某些模块使用数据文件(如.txt)和动态库(如.dll,.so),我希望将它们传递给执行程序。
答案 0 :(得分:0)
分发Spark和您的模块的一个很好的解决方案是使用 Docker Swarm (我希望您有使用Docker的经验)。
尝试看看这个存储库,它在https://github.com/big-data-europe/docker-spark时对我非常有用
这是分发Spark的良好基础。最重要的是,您可以构建自己的模块。因此,您可以创建自己的Docker映像以分发到Docker Hub中,然后使用Docker Swarm轻松地将它们分发到您的群集中