草庐IT

lost-executors

全部标签

memory - 如何设置 Apache Spark Executor 内存

如何增加Apachespark执行器节点的可用内存?我有一个适合加载到ApacheSpark的2GB文件。我目前在一台机器上运行apachespark,所以驱动程序和执行程序在同一台机器上。机器有8GB内存。当我将文件设置为缓存在内存中后尝试计算文件的行数时,出现以下错误:2014-10-2522:25:12WARNCacheManager:71-Notenoughspacetocachepartitionrdd_1_1inmemory!Freememoryis278099801bytes.我查看了文档here并在$SPARK_HOME/conf/spark-defaults.conf

java - Executors.newSingleThreadExecutor().execute(command)和new Thread(command).start()的区别;

好吧,标题说了算,Executors.newSingleThreadExecutor().execute(command)有什么区别?和newThread(command).start(); 最佳答案 在行为上,几乎没有。然而,一旦你有了一个Executor实例,你就可以向它提交多个任务,并让它们一个接一个地执行。您不能简单地使用原始Thread来做到这一点。 关于java-Executors.newSingleThreadExecutor().execute(command)和newT

java - 为什么 Java Executors 类没有提供调度的缓存线程池?

Executors提供newCachedThreadPool()和newScheduledThreadPool(),但不提供newCachedScheduledThreadPool(),这里给出了什么?我有一个接收突发消息的应用程序,并且需要在每个固定延迟之后安排一个相当长的处理步骤。时间限制不是很紧,但如果我超过池大小,我更愿意动态创建更多线程,然后在不活动期间将它们修剪掉。并发库中是否有我遗漏的东西,还是我需要自己编写? 最佳答案 根据设计,ScheduledThreadPoolExecutor的大小是固定的。您可以使用提交给普

应该永远运行的任务的 Java Executor 最佳实践

我正在处理一个需要异步运行多个任务的Java项目。我被引导相信Executor是我做到这一点的最佳方式,所以我正在熟悉它。(是的,学习是有报酬的!)但是,我不清楚什么是完成我想做的事情的最佳方法。为了争论,假设我有两个任务正在运行。两者都不会终止,并且两者都应该在应用程序的生命周期内运行。我正在尝试编写一个主包装类:如果任一任务抛出异常,包装器将捕获它并重新启动任务。如果任一任务运行完成,包装器将注意到并重新启动该任务。现在,应该注意的是,这两个任务的实现都会将run()中的代码包装在一个永远不会运行到完成的无限循环中,并带有一个应该处理的try/catchblock所有运行时异常都不

java - Executor 和 ExecutorService 有什么区别?

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visitthehelpcenter.关闭9年前。我想知道Executor和ExecutorService有什么区别?任何例子都会有所帮助。 最佳答案 Executor只是执行你给它的东西。ExecutorService添加了启动、关闭以及等待和查看您已提交以在Executor(它扩展)之上执行的作业状态的能力。 关于java-Exe

java - 如何从 Executors 中正确捕获 RuntimeExceptions?

假设我有以下代码:ExecutorServiceexecutor=Executors.newSingleThreadExecutor();executor.execute(myRunnable);现在,如果myRunnable抛出RuntimeExcpetion,我该如何捕捉它?一种方法是将我自己的ThreadFactory实现提供给newSingleThreadExecutor()并为Thread设置自定义uncaughtExceptionHandler从中产生的。另一种方法是将myRunnable包装到包含try-catchblock的本地(匿名)Runnable。也许还有其他类似

java - 我们什么时候应该使用 Java 的 Thread over Executor?

Executor看起来像是一个干净的抽象。您什么时候想直接使用Thread而不是依赖更健壮的执行器? 最佳答案 为了提供一些历史,Executors只是作为Java1.5中java标准的一部分添加的。所以在某些方面Executors可以被看作是处理Runnable任务的一种新的更好的抽象。有点过于简化了...-执行器是正确完成的线程,因此请优先使用它们。 关于java-我们什么时候应该使用Java的ThreadoverExecutor?,我们在StackOverflow上找到一个类似的问

java - Executor Service的shutdown和shutdownNow的区别

我想知道shutdown()和shutdownNow()关闭ExecutorService的基本区别?据我所知:shutdown()应该用于graceful关闭,这意味着应该允许所有正在运行并排队等待处理但未启动的任务完成shutdownNow()会进行一次abrupt关闭,这意味着一些未完成的任务被取消,未启动的任务也被取消。还有什么我遗漏的隐式/显式的吗?P.S:我在Howtoshutdownanexecutorservice上发现了另一个问题与此相关,但不完全是我想知道的。 最佳答案 总而言之,你可以这样想:shutdown(

java - Spring的ThreadPoolTask​​Executor的池大小问题

我正在对我的Spring应用程序进行一些负载测试,现在我对ThreadPoolTask​​Executor的配置有点困惑。内部使用的ThreadPoolExecutor的文档将corePoolSize描述为“保留在池中的线​​程数,即使它们是空闲的,[...]"和maximumPoolSize为“池中允许的最大线程数”。这显然意味着maximumPoolSize限制了池中的线程数。但相反,限制似乎是由corePoolSize设置的。实际上我只用100配置了corePoolSize并让maximumPoolSize未配置(这意味着使用默认值:Integer.MAX_VALUE=21474

java - Spring ThreadPoolTask​​Executor 只运行一个线程

我们在JMS消费者中使用ThreadPoolExecutor并将其注入(inject)到DefaultMessageListenerContainer中。我希望这会为许多消息运行并发线程,但是我们的日志显示线程id不会改变。我们的日志显示,对于不同的消息处理,线程id总是相同的24。这是该场景中的Spring配置:在没有将threadPoolExectuorbean注入(inject)DefaultMessageListenerContainer之后,消息现在正在不同的线程中执行。这是生成的配置:我已尝试阅读文档,但我不明白为什么会发生这种情况。有什么解释吗?