Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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

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
Java Spark多会话与共享全局会话 问题:_Java_Apache Spark_Configuration_Architecture_Distributed Computing - Fatal编程技术网

Java Spark多会话与共享全局会话 问题:

Java Spark多会话与共享全局会话 问题:,java,apache-spark,configuration,architecture,distributed-computing,Java,Apache Spark,Configuration,Architecture,Distributed Computing,创建多个Spark应用程序/会话而不是共享全局会话的动机是什么 解释 您有Spark独立群集管理器 群集: 5台机器 2个核心(执行器)每个=总共10个执行器 每台机器16 GB RAM 工作: 转储数据库,需要所有(10)个执行器,但每个执行器上只有1 GB RAM 处理转储结果,需要5个执行器,每个执行器具有8-16 GB RAM 快速数据检索任务,5个执行器,每个执行器具有1 GB RAM 等 哪种解决方案是最佳实践?如果集群的资源保持不变,为什么我更喜欢第一个解决方案而不是第二个

创建多个Spark应用程序/会话而不是共享全局会话的动机是什么

解释 您有Spark独立群集管理器

群集:

  • 5台机器
  • 2个核心(执行器)每个=总共10个执行器
  • 每台机器16 GB RAM
工作:

  • 转储数据库,需要所有(10)个执行器,但每个执行器上只有1 GB RAM
  • 处理转储结果,需要5个执行器,每个执行器具有8-16 GB RAM
  • 快速数据检索任务,5个执行器,每个执行器具有1 GB RAM
哪种解决方案是最佳实践?如果集群的资源保持不变,为什么我更喜欢第一个解决方案而不是第二个,或者第二个解决方案而不是第一个?

解决方案:

  • 从不同的Spark应用程序(JVM)启动第一、第二和第三个作业
  • 使用单个全局Spark应用程序/会话,它保存集群的所有资源(10个执行器,每个8 GB RAM)。创建第一、第二和第三个工作岗位
  • 使用一些黑客,比如从单个JVM运行具有不同配置的作业。但我担心这不是一个非常稳定的解决方案(如果您愿意,由Spark团队正式支持)
  • [Spark Job Server][5,但据我所知,这是第一个解决方案的实现
  • 更新 看起来第二个选项(具有所有资源的全局会话+公平线程池)不可能,因为您只能在pool.xml(
    minShare
    )上配置内核数,但不能配置每个执行器的内存