TLDR:我有一个pyspark作业,当我在具有16个vcpus的ec2实例中运行它时,它会在10分钟内完成,但如果我使用具有超过20个vcpus的实例,它会冻结(它不会失败,只是永远不会完成)。我已经尝试了我能想到的一切,我只是不知道为什么会发生这种情况。
完整故事:
我有大约200个小型pyspark作业,出于成本和灵活性的考虑,我使用aws batch与spark dockers而不是EMR来执行这些作业。最近,我决定尝试这些作业的最佳配置,我意识到了一些奇怪的事情:一个用16个或更少的vCPU快速完成(大约10分钟)的作业永远不会以20个或更多的vCPU结束(我等了3个小时)。我首先想到的是,这可能是批处理或ecs代理管理任务的方式有问题,所以我尝试直接在ec2中运行docker,但遇到了同样的问题。然后我认为问题出在docker图像上,所以我尝试创建一个新图像:
同样的事情发生了。然后我决定问题根本在于使用docker,所以我将所有东西都直接安装在ec2中,得到了相同的结果。尝试更改spark版本,也发生了同样的事情。我认为这可能是硬件阻塞太多线程的问题,所以我切换到AMD的一个实例,没有任何改变。尝试修改一些配置,驱动程序使用的内存量,但结果总是一样的:16个vCPU它工作,超过它,它停止。
其他详情:
我很感谢你在这件事上的帮助!
如果您仍然看到问题,请查看是否可以在hadoop 3.3. x上复制它们,如果可以:提交错误。
(2021-03-9的建议正确;它在SO中未经编辑的时间越长,就越不应该被相信)
我正在将游戏的场景从启动页面切换到游戏,如果我单独玩,游戏场景效果很好,但当我从启动页面切换后玩游戏时,游戏会冻结一段时间。 是什么原因导致我的主游戏在切换场景后冻结了一段时间(一段时间后再次启动),我确信游戏在没有切换场景的情况下运行良好。 程序的控制流程是——从播放器开始,startuppage场景被加载到舞台,如果按下播放按钮,则在主控制器中,场景被切换到我的游戏场景。问题只会在切换场景时出
通过使用会话窗口与相当高级的组一起运行流数据流管道,在运行几个小时后,我遇到了问题。工作在workers中扩展,但后来开始获得日志负载,其内容如下 记录此代码的转换位于“group by”-块之后,并执行对外部服务的异步HTTP调用(使用)。 你知道为什么会这样吗?与异步、伸缩或按策略分组有关? 作业ID:2018-01-29_03_13_40-12789475517328084866 SDK:A
我正在处理一些奇怪的错误信息,我认为这可以归结为内存问题,但我很难确定它,可以从专家那里得到一些指导。 我有一个两台机器的Spark(1.0.1)集群。两台机器都有8个核心;一台有16GB内存,另一台有32GB内存(这是主)。我的应用程序涉及计算图像中的成对像素亲和力,尽管我测试的图像到目前为止只有1920x1200大,16x16小。 我确实必须改变一些内存和并行性设置,否则我会得到显式的OutO
我们正在运行SonarQube 4.5.1,并使用Jenkins和SonarQube插件运行项目分析。从三天前开始,我们在一些作业中遇到以下错误消息。 如果我将URL复制到浏览器,我会收到以下消息: “您仅被授权执行本地(试运行)SonarQube分析,而无需将结果推送到SonarQube服务器。请与您的SonarQube管理员联系。” 背景 "期望selectOne()返回一个结果(或null)
问题内容: 如何在不冻结程序的情况下用Java执行进程?我已经尝试过使用SwingWorker,但是我还不太了解它是如何工作的。 我还有其他方法可以做到这一点吗?我想在我的JDroidLib中使用类似的东西。有关完整的源代码,请查看GitHub:http : //github.com/Team-M4gkBeatz/JDroidLib 提前致谢! 编辑: 感谢您的回答。但是我有一个带有几种方法的类(
我的理解是,这是SparkR的一个非常基本的功能,所以我真的不知道为什么它不能工作。由于某种原因,当我使用直接从数据源读取时,我没有问题。还有,我注意到错误行中的数字“:stage xxx中的task 0..”每次失败时递增1。 我还注意到,错误似乎来自于执行程序找不到的二进制文件,尽管我不确定为什么这只会发生在从本地data.frames创建的SparkDataFrames中,而不是从外部数据源