spark streaming 如果以local 模式运行,log日志非常清楚。
如果log 日志是运行在yarn 模式下,driver 的日志可以通过reource manager 日志看到。但是executor的日志却看不到,我们往往错误都发生在executor里,比如典型的错误:如果我们连接hbase去存取数据的话,我们会在driver里初始化了连接,缺忽略的excutors里,导致程序出错...
分类:
其他好文 时间:
2015-04-29 13:38:51
阅读次数:
290
今天准备跑自己的spark程序,但是运行过程中遇到了OutOfMemory:GC overhead limit exceeded的错误。最后通过设置spark executor cores解决...
分类:
其他好文 时间:
2015-04-27 07:11:52
阅读次数:
211
线程池就是一个可以装线程的一个容器,线程池一般有三种
1固定线程池ExecutorService threadPool = Executors.newFixedThreadPool(3);//开启线程池,固定的线程池参数3 表示限制放入线程池的线程数
2缓存线程池Executor threadPool = Executors.newCachedThreadPool();//开启缓存线程池,根据...
分类:
编程语言 时间:
2015-04-26 18:24:48
阅读次数:
152
spring @Scheduled ,默认基于单线程执行,如果需要基于多线程执行,需要在配置文件中配置如下
queue-capacity="500" rejection-policy="CALLER_RUNS" />
scheduler="scheduler" />
具体可以参考spring 帮助文档对annotation-driven的executor和sc...
分类:
编程语言 时间:
2015-04-25 01:41:49
阅读次数:
1638
线程饥饿死锁
《Java并发编程实践》中对线程饥饿死锁的解释是这样的:在使用线程池执行任务时,如果任务依赖于其他任务,那么就可能产生死锁问题。在单线程的Executor中,若果一个任务将另一个任务提交到同一个Executor,并且等待这个被提交的任务的结果,那么这必定会导致死锁。第一个任务在工作队列中,并等待第二个任务的结果;而第二个任务则处于等待队列中,等待第一个任务执行完成后被执行...
分类:
编程语言 时间:
2015-04-21 14:40:38
阅读次数:
151
public interface Executor {
/**
* @param command the runnable task
* @throws RejectedExecutionException if this task cannot be
* accepted for execution
* @throws NullPoint...
分类:
其他好文 时间:
2015-04-20 22:44:41
阅读次数:
104
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为:并发编程的一种编程方式是把任务拆分为...
分类:
编程语言 时间:
2015-04-20 00:22:08
阅读次数:
193
在创建Storm的Topology时,我们通常使用如下代码:builder.setBolt("cpp", new CppBolt(), 3).setNumTasks(5).noneGrouping(pre_name);Config conf = new Config();conf.setNumWor...
分类:
其他好文 时间:
2015-04-18 18:58:05
阅读次数:
128
深入理解
java执行器相关的类有:Executor ,Executors,ExecutorService。
Executor分析
Executor是一个接口,是用来执行 Runnable 任务的;它只定义一个方法- execute(Runnable command);执行 Ruannable 类型的任务。通过 Executor 管理 Thread 对象,可以简化编程。Executor在客户单和任务执行之间提供了一个中介层,通过中介来执行任务。Executor执行任务而无须管理任务的生命周期。因此,Exec...
分类:
编程语言 时间:
2015-04-17 13:51:39
阅读次数:
164
AsyncTask中一共定义了两个线程池一个是此前我们已经介绍了线程池SerialExecutor,这个是目前我们调用AsyncTask.execute()方法默认使用的线程池,这个在前一篇文章中已经讲到过了,另一个是3.0版本之前的默认线程池THREAD_POOL_EXECUTOR。...
分类:
移动开发 时间:
2015-04-15 17:07:36
阅读次数:
160