作业调度与云计算

在查阅云计算相关资料的时候,发现云计算中有部分内容与我们目前开发的批量调度总线十分相关,例如作业调度也是云计算的关键软件,云计算的作业调度软件一般有以下功能:排队,调度,监控,资源管理以及计费。目前比较流行的开源作业管理有PBS(Portable Batch System), Condor ,商业的比较常见的有IBM的Loadleveler,以及LSF(Load Sharing Facility)。Hadoop的的调度功能,也只是做批量的调度,借鉴了Condor的经验

 

Condor是一个专门用于计算密集型作业的负载管理系统。像其他功能齐全的批处理系统一样,Condor提供了作业排队机制,调度策略,优先计划,资源监测和资源管理。用户提交他们的串行或并行工作给Condor,Condor把他们放到一个队列中,根据某种策略选择时间和地点来执行作业,仔细监测其进展情况,并最终通知用户完成。

 

PBS目前已经变成商业产品,condor目前仍然开源并在持续开发(http://research.cs.wisc.edu/condor/),可以作为我们调度产品的参考。

 

目前Condor等调度系统的调度算法,如常见的FCFS, Backfilling, Gang scheduling 等,大多延续自DQS(Distributed Queung System) ,解决了我们讨论的吞吐量,优先级,分布式排队等问题。其中Backfilling 算法 由于解决了资源碎片问题,显著提高了系统的性能,因此在集群系统中得到了广泛应用。

 

 

另外目前云计算调度规范,比如OGF-OGSA的作业描述语言(JSDL Job Submission and Dscription Language)和作业提交规范(BES Basic Execution Service),对于作业的描述,定义及提交有很好的的标准,其中的很多思路对我们的调度产品参考借鉴意义很大,如果产品最终能支持JDSL以及BES 等开放标准也是后续产品的一个亮点。JDSL和bes可参考附件。

路在何方

昨天老大找我聊了聊,和我讲了BI线未来的规划,发展方向,一下子就明了了很多,原先对部门,对BI线的未来发展方向还是有些迷茫,看不清。二十分钟的谈话让我对未来的发展有了不少信心。目前上下的沟通还是偏少吧,基层员工不知道老大们的想法,不能领会自然也不能贯彻。

明年还要继续做当前的工作的话,其实有几个东西可以做,一个是运维平台的概念,目前繁琐,重复的运维操作及支持可以做部分的简化。运维这个要做到简化性和不可替代性之间貌似有些矛盾,简化以后就可替代,无数繁琐手工操作就难以替代。?一个是知识管理平台,目前很多经验的积累完全就没有做起来。

目前我们部门是有点强项不强的意思,就有点像Aman同志说的,从下至上难,在项目中做产品,着眼于当前项目的需求,设计高度不够,做出来的东西又要对当前项目进度,成本进行妥协,从而与项目的环境,其他产品绑的过死,造成后续产品化和推广的困难。理想总是好的,但是现实总是骨感,可能是无法支撑一个脱离项目的研发团队进行产品研发。尤其是目前刚刚起步的现状。

我想对整个调度的架构应该组织个新的梳理,有产品经理明确架构中各个关键组件的定位,功能,可以参考各个项目实施的经验,还有业界的其他经验,如ali的平台等等。以产品的高度在项目中完善功能。对项目中偏离产品定位的特殊需求应该有产品经理组织讨论,修改架构融于产品还是另行开发,而不是仅仅听项目经理的意见。其实就是心中要绷紧一根铉,这是是在做通用产品,不是仅仅着眼于这个项目的需求而开发。

 

oracle 10进制转36进制函数

在编写ctm脚本的时候需要用到10进制于36进制的互相转换。

36进制转10进制在shell中非常好实现。

echo $((36#00006sx1)) 就能将00006sx1转为317413 ,

但是10进制转36进制就没这么方便了,写了一个函数来进行转换。

create or replace function f_10to36(i int) return varchar is

ret varchar2(8);

var_m int;

var_s int;

begin

ret := ”;

var_s := i;

while var_s >= 36 loop

var_m := mod(var_s, 36);

if var_m < 10 then

ret := to_char(var_m) || ret;

else

ret := chr(var_m – 10 + 97) || ret;

end if;

var_s := trunc(var_s / 36);

end loop;

if var_s > 0 or (var_s = 0 and ret = ”) then

if var_s < 10 then

ret := to_char(var_s) || ret;

else

ret := chr(var_s – 10 + 97) || ret;

end if;

end if;

return lpad(ret, 8, ‘0’);

end f_10to36;

东南融通面试

好久没有找工作了,又要开始面试还真是有点不习惯
面试的是东南融通的中级BI工程师职位

下午三点到达建行大厦34层,看了看.原来还是最高的一层.电梯就只到34

出了电梯打电话给李经理,让我在旁边休息区的沙发上等.

在附近看了看.好像人还挺多的

等了两三分钟就来了.附近没有空的会议室,就在沙发上开始了面试

原来还想准备一个自我介绍,没用上

直接就提起我的简历,让我在简单介绍一下我从事的项目,以及我所负责的工作,了解了一下项目的规模,设计,

还有这一年多工作的收获与不足,
他也和我讲了公司项目的一些情况,说到每天增量数据就500G到1T,全量的那就更多了.
每天几万个job在跑,还自己开发了监控平台,调度平台,ods开发现在就四十多人.而且计划招到七八十人.云云…
算是很简单,总共不到二十分钟就结束了.我和他讲了我的特殊情况,他答应我明天就让HR联系我.

回到家不到一个小时,HR就打电话过来说 经理已经提交了面试结果,还是同意录用我的,但是公司有一些流程要走,明天负责薪酬的专员会和我联系,如果薪酬谈拢了就正式发offer,她说offer的时候我还不习惯.那时候还在学校找工作的时候就天天听到的是offer,这过了一年听到,感觉还挺新鲜的,了解了一下我对出差的意向.我就问了一下出差补助多少,说是一线城市80一天,二线城市70 ,那我就说我只能出短差,而且第一年进公司没有年假,第二年才5天,说明天谈薪资的时候谈的是基本工资,社保公积金什么都是和基本工资挂钩的,要我确定离职的时间.到时候这个时间会写在offer上面.

现在都年底了,离职其实很不划算,年假,婚假,年终奖,还有没领完的笔记本补贴 什么都没有了,

到了新公司才那么几个月,试用期都没满,到时自然不用指望年终奖有多少了,损失比较大自然要求的薪资不能太低

明天谈的时候要坚持高一点.