美文网首页程序员每天写1000字想法
提交Spark任务至YARN运行的3种方式

提交Spark任务至YARN运行的3种方式

作者: 皮皮杂谈 | 来源:发表于2019-05-07 00:02 被阅读77次

    Spark作为新一代计算平台的闪亮明星,在我们的大数据平台中具有非常重要的作用,SQL查询、流计算和机器学习等场景都能见到它的身影,可以说平台应用的数据处理、计算和挖掘等场景都可以使用Spark进行开发。在默认的情况下,如果想向Spark提交计算任务,通常会使用Spark提供的Spark-Submit脚本来提交含有业务逻辑的jar文件程序。这种方式虽然简单,但有悖于服务化的设计理念,所以需要为Spark提供一套任务管理的RESTful服务。

    在大数据平台中,Spark是以Spark on YARN的方式运行的,在这种模式下,整个集群的资源调度是由YARN统一控制的,Spark只是作为运行在YARN上的一个应用客户端而存在。本文将介绍提交Spark任务至YARN运行的3种方式。如下图所示:

    Spark任务提交方式

    第一种方式:使用Spark-Submit脚本提交

    Spark本身提供了Spark-Submit脚本用于提交任务,可以借助Java的Process-Builder调用脚本,将其包装成RESTful服务。

    第二种方式:使用Spark Client提交

    除了Spark-Submit脚本之外,Spark还提供了一套Java客户端接口用于提交任务。在使用这套接口之后,程序就可以去掉对Spark-Submit脚本的依赖,这样一来提交任务的服务程序就可以运行在应用服务器之上,使得以远程的方式向集群提交任务成为可能。

    第三种方式:使用YARN RESTful API提交

    除了Spark-Submit和Spark Client两种方法之外,还可以通过YARN提供的RESTful API向其提交Spark任务。但是这种方法十分复杂,并不推荐使用。

    相关文章

      网友评论

        本文标题:提交Spark任务至YARN运行的3种方式

        本文链接:https://www.haomeiwen.com/subject/brojoqtx.html