如何在没有 30 秒启动惩罚的情况下启动 Spark 应用程序?

too*_*op4 5 hadoop apache-spark

当进行spark-submit时,做任何事情都需要30秒,我相信它绑定到sparkmaster上的端口,创建sparkcontext,分配执行器,jvm启动等

无论如何要加快速度吗?我将每 3 分钟使用不同的参数调用 jar 并希望减少延迟

我尝试使用 local:/ 读取 jar,这似乎节省了几秒钟

Piy*_*tel 0

我不认为你可以加快速度很多。首先,YARN 和应用程序主机在启动您的应用程序之前必须执行许多任务。

YARN 必须检查资源并决定在哪里启动新应用程序。分配应用程序主机,应用程序主机然后与资源管理器通信以找出可用资源并为给定的输入数据获取可能的最佳资源。

然后在执行器节点上启动工作线程,启动 JVM 线程等。此外,由于资源不可用,可能会出现一些延迟。所以,我怀疑你能否确定每次都会在 30 秒内启动。

另外,我不知道为什么这种延迟会在启动过程中导致问题。

由于批处理是批处理,因此批处理通常会延迟。Spark 流式传输也会延迟,因为它不会启动 Spark 进程,直到它们从流式传输源积累了足够的数据,并且如果有足够的资源,它就会赶上。如果您需要实时流,那么在 Spark 提出实时处理解决方案之前,Flink 可能是更好的选择。