apache-spark - 如何在一个应用程序中提交多个工作的火花
问题描述
我有一个使用 spark 2.1(scala) 的报表统计项目,它是这样工作的:</p>
object PtStatsDayApp extends App {
Stats A...
Stats B...
Stats C...
.....
}
有人将许多统计计算(大部分不相关)放在一个类中并使用 shell 提交。我发现它有两个问题:
如果一个统计数据卡住,那么下面的其他统计数据将无法运行
如果一个统计失败,那么应用程序将从头开始重新运行
我有两个重构解决方案:
- 将每个统计信息放在一个类中,但需要更多脚本。这个解决方案是否会因为提交这么多而产生很多开销?
- 并行运行这些统计信息。这个问题是资源压力,还是火花可以适当地处理它?
还有其他想法或最佳实践吗?谢谢
解决方案
有几个 3d 派对免费 Spark 调度程序,如 Airflow,但我建议使用 Spark Launcher API 并以编程方式编写启动逻辑。使用此 API,您可以并行、顺序或任何您想要的方式运行您的作业。
并行运行作业的效率主要取决于 Spark 集群配置。一般来说,Spark 支持这种类型的工作负载。
推荐阅读
- c# - 是否可以使用 Novell 软件包找到 LDAP 用户所属的组?(C#)
- google-maps - 谷歌地图markClusterer - 语法不清楚
- python - Python:复制文件和创建目录时,从列表或数据框中递归命名文件夹
- html - 赛普拉斯,读出图像的属性,如标题或 alt 并进行比较
- javascript - Rails 表单 - 通过 JavaScript 根据另一个选定选项更改选择选项
- vue.js - Vuetify Calander
- azure-cosmosdb - Azure Cosmos DB 如何按一系列值进行分组
- html - CSS 媒体查询未以定义的宽度触发
- r - R - 在 fviz 集群图中添加变量
- python - file.endswith 返回 zip 文件夹和其中的文件