相关疑难解决方法(0)

什么是Spark Job?

我已经完成了spark安装并执行了几个设置master和worker节点的测试用例.也就是说,我对Spark上下文(而不是SparkContext)中的作业意味着什么非常混乱.我有以下问题

  • 来自Driver程序的工作有多么不同.
  • 应用程序本身是Driver程序的一部分?
  • Spark提交方式是一份工作吗?

我阅读了Spark文档,但这件事对我来说还不清楚.

话虽如此,我的实现是编写火花作业{programmatically},这将火花提交.

如果可能,请帮助一些例子.这将非常有帮助.

注意:请不要发布spark链接,因为我已经尝试过了.虽然这些问题听起来很幼稚,但我仍需要更清晰的理解.

batch-processing job-scheduling apache-spark

31
推荐指数
1
解决办法
2万
查看次数

如何在不产生单独的JVM的情况下并行提交多个Spark应用程序?

问题是您需要启动单独的JVM来创建每个作业具有不同RAM数量的单独会话。

如何在不手动生成单独的JVM的情况下同时提交几个Spark应用程序?

我的应用程序在单个JVM中的单个服务器上运行。对于每个JVM范例,Spark会话似乎存在问题。Spark范式说:

1 JVM => 1 app => 1 session => 1 context => 1 RAM/executors/cores config
Run Code Online (Sandbox Code Playgroud)

我希望每个Spark应用程序具有不同的配置,而无需手动启动额外的JVM。配置:

  1. spark.executor.cores
  2. spark.executor.memory
  3. spark.dynamicAllocation.maxExecutors
  4. spark.default.parallelism

用例

您已经开始长时间运行,大约需要4-5个小时才能完成工作。该作业与CONFIGS会话中运行spark.executor.memory=28GBspark.executor.cores=2。现在,您要根据用户需求启动5-10秒的工作,而无需等待4-5个小时。这个细小的工作需要1GB的RAM。你会怎么做?从长期运行的工作阶段提交微小的工作?比它将要求28GB((

我发现了什么

  1. Spark允许您仅在会话级别上配置CPU和执行程序的数量。Spark调度池仅允许您滑动和切块数量的内核,而不是RAM或执行程序,对吗?
  2. Spark Job服务器。但是他们不支持Spark高于2.0,这不是我的选择。但是,实际上,它们解决了2.0版之前的问题在Spark JobServer功能中,他们说Separate JVM per SparkContext for isolation (EXPERIMENTAL),这意味着spawn new JVM per context
  3. 不赞成使用Mesos细粒度模式
  4. 这种hack,但是在生产中使用它太冒险了。
  5. 隐藏的Apache Spark REST API用于作业提交,请阅读thisthis。绝对有一种方法可以在其中指定执行程序的内存和内核,但是提交具有不同配置的两个作业仍然是什么行为?据我了解,这是Java REST客户端
  6. 利维。不熟悉它,但是看起来他们只有Java …

java rest apache-spark spring-data-hadoop

4
推荐指数
1
解决办法
3985
查看次数