Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 部署和运行定期Spark作业的最佳实践_Apache Spark_Batch Processing - Fatal编程技术网

Apache spark 部署和运行定期Spark作业的最佳实践

Apache spark 部署和运行定期Spark作业的最佳实践,apache-spark,batch-processing,Apache Spark,Batch Processing,我有很多spark批处理作业,每x小时需要运行一次。我相信这一定是一个常见的问题,但在互联网上似乎很少有关于设置这个的最佳实践。我当前的设置如下: 构建系统(sbt)构建一个tar.gz,其中包含一个fat jar+一个将调用spark submit的脚本 一旦测试通过,CI系统(Jenkins)就会将tar.gz复制到hdfs 我设置了一个作业,将tar.gz解包到本地文件系统,并运行提交给spark的脚本 这个设置相当不错,但步骤3)中有一些方面我不喜欢。具体而言: 我需要一个单独的脚本(

我有很多spark批处理作业,每x小时需要运行一次。我相信这一定是一个常见的问题,但在互联网上似乎很少有关于设置这个的最佳实践。我当前的设置如下:

  • 构建系统(sbt)构建一个tar.gz,其中包含一个fat jar+一个将调用spark submit的脚本

  • 一旦测试通过,CI系统(Jenkins)就会将tar.gz复制到hdfs

  • 我设置了一个作业,将tar.gz解包到本地文件系统,并运行提交给spark的脚本

  • 这个设置相当不错,但步骤3)中有一些方面我不喜欢。具体而言:

    • 我需要一个单独的脚本(由chronos执行),该脚本从hdfs复制、解压缩并运行spark提交任务。据我所知,chrons无法从hdfs运行脚本,因此我必须在每个mesos worker上都有一份该脚本的副本,这使得部署变得更加复杂,如果一切都是在hdfs上运行的话

    • 我有一种感觉,我有太多的运动部件。例如,我想知道我是否可以创建一个可执行的jar来提交它自己(args将是spark主类和主类),在这种情况下,我将至少删除一个包装器脚本。不幸的是,我还没有找到一个好的方法


    由于这是每个人都面临的问题,我想知道是否有人能提供更好的解决方案。

    要下载和提取归档文件,您可以通过设置URI字段在Chronos作业配置中指定它来使用Mesos。 要在executors端执行相同的过程,可以在默认的spark配置中设置spark.executor.uri参数