print():在运行流应用程序的驱动程序节点上打印DStream中每批数据的前十个元素。这个 对于开发和调试很有用。
根据cluster overview documentation:
Spark应用程序作为集群上的独立进程集运行, 由主程序中的SparkContext对象协调(称为 司机程序)。
我的问题是司机==主人?
即。是否在驱动程序上打印?
答案 0 :(得分:2)
Master是资源经理。它不直接参与数据处理,也不是应用程序的一部分。
print
在驱动程序上执行,该驱动程序是应用程序的入口点。
答案 1 :(得分:2)
我的问题是,是司机==主人吗?
没有。驱动程序是初始化SparkContext
的过程。它将存在于你告诉它的地方。例如,如果使用本地工作的local[*]
运行作业,则会在计算机上本地初始化驱动程序。如果在默认的独立资源管理器上以“客户端模式”运行spark,它将从提交作业的位置启动驱动程序。如果使用“群集模式”,则会将驱动程序分派到群集中的某个Worker节点。
master是一个独立的进程,负责管理集群。它知道它正在管理哪些工作,并且他的工作是为您提供足够的资源来运行您的驱动程序,以便您可以利用该集群。
使用DStream.print
时,数据将发送到运行驱动程序的任何位置。如果您从一台也恰好是运行主进程的机器启动驱动程序,则该机器将接收数据并打印输出。