我已经完成了spark安装并执行了几个设置master和worker节点的测试用例.也就是说,我对Spark上下文(而不是SparkContext)中的作业意味着什么非常混乱.我有以下问题
我阅读了Spark文档,但这件事对我来说还不清楚.
话虽如此,我的实现是编写火花作业{programmatically},这将火花提交.
如果可能,请帮助一些例子.这将非常有帮助.
注意:请不要发布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。配置:
spark.executor.coresspark.executor.memoryspark.dynamicAllocation.maxExecutorsspark.default.parallelism您已经开始长时间运行,大约需要4-5个小时才能完成工作。该作业与CONFIGS会话中运行spark.executor.memory=28GB,spark.executor.cores=2。现在,您要根据用户需求启动5-10秒的工作,而无需等待4-5个小时。这个细小的工作需要1GB的RAM。你会怎么做?从长期运行的工作阶段提交微小的工作?比它将要求28GB((
Separate JVM per SparkContext for isolation (EXPERIMENTAL),这意味着spawn new JVM per context