从Physical plan到Map-Reduce Plan
注:因为我们重点关注的是Pig On Spark针对RDD的执行计划,所以Pig物理执行计划之后的后端参考意义不大,这些部分主要分析流程,忽略实现细节。
入口类MRCompiler,MRCompilier按照拓扑顺序遍历物理执行计划中的节点,将其转换为MROperator,每个MROperator都代表一个map-reduce
j...
分类:
其他好文 时间:
2014-05-10 08:46:07
阅读次数:
366
slave的几个类结构: Master_info:用于IO线程的参数,包括连接master实例的信息。
Relay_log_info:用于sql线程,表示relay log相关的信息。
Slave_worker:继承Relay_log_info,包括一个job队列,用于并行的worker线程。...
分类:
数据库 时间:
2014-05-08 19:28:57
阅读次数:
369
本文通过跟代码的方式,分析从输入一批Pig-latin到输出物理执行计划(与launcher引擎有关,一般是MR执行计划,也可以是Spark RDD的执行算子)的整体流程。
不会具体涉及AST如何解析、如何使用了Anltr、逻辑执行计划如何映射、逻辑执行计划如何优化、MR执行计划如何切分为MR Job,而是从输入一批Pig DSL到待执行的真正执行计划的关键变化步骤(方法和类)。...
分类:
其他好文 时间:
2014-05-08 04:00:42
阅读次数:
407
xtrabackup
binary最重要的两个过程是backup和prepare,对应的函数分别是xtrabackup_backup_func()和xtrabackup_prepare_func(),这里做一些阅读代码时的笔记。xtrabackup
backup的线程模型:1. 一个log拷贝线程;...
分类:
其他好文 时间:
2014-05-07 19:20:21
阅读次数:
505
Chef and The Right Triangles
The Chef is given a list of N triangles. Each triangle is identfied by the coordinates of its three corners in the 2-D cartesian plane. His job is to figure out how m...
分类:
其他好文 时间:
2014-05-07 16:28:35
阅读次数:
314
备份站点Backup-SPSite -Identity -Path [-Force]
[-NoSiteLock] [-UseSqlSnapshot] [-Verbose] 那么就按照上面的代码敲吧(注意要有管理员的身份)命令是:
backup-spsite -identity http://po.....
分类:
其他好文 时间:
2014-05-07 10:24:21
阅读次数:
473
Video Surveillance
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 3145
Accepted: 1391
Description
A friend of yours has taken the job of security officer at...
分类:
其他好文 时间:
2014-05-07 06:49:43
阅读次数:
387
在项目数据库设计过程中由于单表的数据量非常庞大,需要对表进行分区处理。由于表中的数据是历史交易,故按月分区,提升查询和管理。
由于之前对于表分区了解不多,为了实现上述功能查了很多资料,一开始的方向是通过Crontab调用Shell脚本来按月自动创建分区,或者使用Oracle的Job调用存储过程来自动创建分区。在研究上述两套方案的过程中,无意发现Oracle11g有间隔分区功能,对于使用Ran...
分类:
数据库 时间:
2014-05-07 02:51:26
阅读次数:
350
《谷歌和亚马逊如何做产品》基本信息原书名:Shipping
greatness:practical lessons on building and launching outstanding
software,learned on the job aGoogle and Amazon?作者: (美)...
分类:
其他好文 时间:
2014-05-07 02:36:34
阅读次数:
338
封装了一个基于C++11的线程池对象。
异步执行的任务,从线程池中分配一个空闲的线程来执行该任务.
如果没有空闲的线程可以执行,则进入队列排队
task_pool_init(10);
for( int i = 0 ; i < 200 ; i ++ )
{
run_job([i]{
std::this_thread::sleep_for(std::chrono::seconds(1));
});
}
...........................
...
分类:
编程语言 时间:
2014-05-06 23:16:37
阅读次数:
378