我无法理解为Map Reduce和Spark作业分配资源的内部机制。
在同一个集群中,我们可以运行Map Reduce和Spark作业,但是对于运行map reduce作业,内部资源管理器会将可用资源(如数据节点和任务跟踪器)分配给作业。在内部工作我需要的'N'个映射器和缩减器。
说到Spark上下文,它需要工作节点和执行程序(内部JVM)来计算程序。
这是否意味着Map Reduce和Spark作业会有不同的节点?如果不是,将如何在任务跟踪器和执行器之间进行区分。集群管理器如何识别Hadoop和Spark作业的特定节点。
有人可以在这里启发我。
答案 0 :(得分:1)
任务跟踪器或执行器 - 都是守护进程。
提交MR作业时,作业跟踪服务或资源管理器服务会为所需资源分配正确的节点管理器。
当提交spark作业时,Application master获取资源在数据附近可用的工作节点,并通过执行程序服务在该节点上提交/部署任务。
它只是底层框架的不同服务/守护进程 - 无论是MR还是spark,它管理整个作业调度并在适当的节点中使用适当的资源启动JVM。
答案 1 :(得分:0)
在我看来,当运行一个火花程序时,它会被分成几个火花作业,每个作业都被分成几个任务。任务有各种类型,包括map-reduce .Map-reduce只是一个具体的计算过程。