在指定Apache Spark主机时有误会
在Apache Spark中,有一个名为”master”(主节点URL)的配置值,用于指定在哪个环境中运行应用程序。
根据目标的不同,需要相应地指定每种模式。
1. 本地模式 dì
在一个实例(驱动程序进程)中进行处理。
正在运行的spark应用程序上的ExecutorID只有一个driver的标识,所有分布式处理的计算也都在这个实例中进行处理。
这在应用程序的单元测试中经常被指定。
master URL被指定为“local”,但是具体的指定方式会影响到运行时创建的线程数等。
2. 本地集群模式 dì jí
在本地环境下,我们使用所谓的假分布模式进行处理。
虽然很少见到实际使用的情况,但如果在单元测试中能够成功应用,可能会提高性能。
3. 中文中的翻译:Yarn客户端模式
根据Yarn进行资源管理,其中driver进程作为客户端进程执行。
由于适合进行交互模式和调试以快速检查输出,因此在开发过程中可能指定。
4. 纱线集群模式
在Yarn的资源管理下执行。
driver进程也会在被Yarn管理的应用程序Master中运行。
如果driver进程出现异常,它会自动重新分配,因此非常适合在生产环境中执行。
5. Spark 独立集群模式
Spark提供了一种在本地运行简易集群的模式,无需使用Hadoop或资源管理的Yarn。
通过启动附带在Spark客户端中的Master和Worker,可以创建该集群。
从本地运行的角度来看,它与本地模式相同,很容易混淆。
事实上,我在构建Spark Standalone Cluster时,曾多次误以为是在本地模式下运行。
本地集群模式是在一台服务器上运行多个Executor的模式,而Spark Standalone Cluster模式是在多个服务器(容器)上运行多个driver或Executor。
因此,在没有Hadoop或Yarn环境的情况下,我认为可以在少数服务器上构建简易集群。
除了 Yarn 以外,还有其他资源管理机制,如 Apache Mesos。