paulwong

#

SPARK架构与流程

Spark的整体流程为:Client 提交应用,Master找到一个Worker启动Driver,Driver向Master或者资源管理器申请资源,之后将应用转化为RDD Graph,再由DAGScheduler将RDD Graph转化为Stage的有向无环图提交给TaskScheduler,由TaskScheduler提交任务给Executor执行。在任务执行的过程中,其他组件协同工作,确保整个应用顺利执行。

Spark架构采用了分布式计算中的Master-Slave模型。Master是对应集群中的含有Master进程的节点(ClusterManager),Slave是集群中含有Worker进程的节点。Master作为整个集群的控制器,负责整个集群的正常运行;Worker相当于是计算节点,接收主节点命令与进行状态汇报;Executor负责任务的执行;Client作为用户的客户端负责提交应用,Driver负责控制一个应用的执行,如图下图:



                                                                                 Spark 框架图

 

Spark集群部署后,需要在主节点和从节点分别启动Master进程和Worker进程,对整个集群进行控制。在一个Spark应用的执行过程中,Driver和Worker是两个重要角色。Driver 程序是应用逻辑执行的起点,负责作业的调度,即Task任务的分发,而多个Worker用来管理计算节点和创建Executor并行处理任务。在执行阶段,Driver会将Task和Task所依赖的file和jar序列化后传递给对应的Worker机器,同时Executor对相应数据分区的任务进行处理。

 

Spark的架构中的基本组件介绍:

ClusterManager:在Standalone模式中即为Master(主节点),控制整个集群,监控Worker。在YARN模式中为资源管理器。

Worker:从节点,负责控制计算节点,启动Executor或Driver。在YARN模式中为NodeManager,负责计算节点的控制。

Driver:运行Application的main()函数并创建SparkContext。

Executor:执行器,在worker node上执行任务的组件、用于启动线程池运行任务。每个Application拥有独立的一组Executors。

SparkContext:整个应用的上下文,控制应用的生命周期。

RDD:Spark的基本计算单元,一组RDD可形成执行的有向无环图RDD Graph。

DAG Scheduler:实现将Spark作业分解成一到多个Stage,每个Stage根据RDD的Partition个数决定Task的个数,然后生成相应的Task set放到TaskScheduler中。

TaskScheduler:将任务(Task)分发给Executor执行。

Stage:一个Spark作业一般包含一到多个Stage。

Task:一个Stage包含一到多个Task,通过多个Task实现并行运行的功能。

Transformations:转换(Transformations) (如:map, filter, groupBy, join等),Transformations操作是Lazy的,也就是说从一个RDD转换生成另一个RDD的操作不是马上执行,Spark在遇到Transformations操作时只会记录需要这样的操作,并不会去执行,需要等到有Actions操作的时候才会真正启动计算过程进行计算。

Actions:操作(Actions) (如:count, collect, save等),Actions操作会返回结果或把RDD数据写到存储系统中。Actions是触发Spark启动计算的动因。

SparkEnv:线程级别的上下文,存储运行时的重要组件的引用。

SparkEnv内创建并包含如下一些重要组件的引用。

MapOutPutTracker:负责Shuffle元信息的存储。

BroadcastManager:负责广播变量的控制与元信息的存储。

BlockManager:负责存储管理、创建和查找块。

MetricsSystem:监控运行时性能指标信息。

SparkConf:负责存储配置信息。

 



                                                                       Spark运行逻辑图

 

在Spark应用中,整个执行流程在逻辑上会形成有向无环图(DAG)。Action算子触发之后,将所有累积的算子形成一个有向无环图,然后由调度器调度该图上的任务进行运算。Spark的调度方式与MapReduce有所不同。Spark根据RDD之间不同的依赖关系切分形成不同的阶段(Stage),一个阶段包含一系列函数执行流水线。图中的A、B、C、D、E、F分别代表不同的RDD,RDD内的方框代表分区。数据从HDFS输入Spark,形成RDD A和RDD C,RDD C上执行map操作,转换为RDD D, RDD B和 RDD E执行join操作,转换为F,而在B和E连接转化为F的过程中又会执行Shuffle,最后RDD F 通过函数saveAsSequenceFile输出并保存到HDFS或 Hbase中

posted @ 2015-06-18 13:17 paulwong 阅读(521) | 评论 (0)编辑 收藏

十人看完,十人都疯了,疯了还想看...

【习惯】

乞丐到小王家乞讨,他给十块,第二天乞丐又去,又给十块,持续两年。一天只给五块,乞丐:以前给十块,怎么现在给五块?小王:我结婚了。乞丐一巴掌打过去:妈的,你竟拿我的钱去养你老婆?启示:当提供免费服务让客户成为一种习惯,这种服务就不再是优势,而是劣势。



【穷人】

穷人问佛:我为什么这样穷?佛说:你没有学会给予别人。穷人:我一无所有如何给予?佛:一个人一无所有也可以给予别人七种东西。颜施-微笑处事;言施-说赞美安慰的话;心施-敞开心扉对人和蔼;眼施-善义的眼光给予别人;身施-以行动帮助别人;座施-即谦让座位;房施-有容人之心。



【经典故事】

老虎抓到一头鹿后要把它吃掉!鹿说:“你不能吃我!”老虎愣了一下,问:“为什么?”鹿:“因为我是国家二级保护动物!”老虎大笑道:“总不能为了二级保护动物而让一级保护动物饿死吧?!”感悟:时刻保持危机感,不要让自己那点优势害死。



【夫妻】

夫妇逛商场,女的看中一套高档餐具,坚持要买,丈夫嫌贵,不肯掏钱。导购一看,悄悄对丈夫说了句话,他一听马上掏钱。是什么让他立马转变?导购员对丈夫说:“这么贵的餐具,你太太是不会舍得让你洗碗的。”启示:人的观念没有什么不可改变,关键是角度,要善于揣摩客户心理。



【班花】

女生公开投票选班花,相貌平平的小梅发表演说:如我当选,再过几年,在座姐妹可以向自己先生骄傲的说,我上大学时候,比班花还漂亮!结果,她全票当选——启示:说服别人支持你,不一定要证明比别人都优秀,而是让别人觉得,因为有你,他们变得更优秀更有成就感。



【管理的弊端】

女孩买了条裤子,一试太长,请奶奶帮忙剪短,奶奶说忙;找妈妈,也没空;找姐姐,更没空。女孩失望地入睡了。奶奶忙完家务想起小孙女的裤子,就把裤子剪短了一点;姐姐回来又把裤子剪短了;妈妈回来也把裤子剪短了,最后裤子没法穿了。——管理的弊端就在于:要么都不管,要么都来管!



【杯子】

当一只玻璃杯中装满牛奶的时候,人们会说“这是牛奶”;当改装菜油的时候,人们会说“这是菜油”。只有当杯子空置时,人们才看到杯子,说“这是一只杯子”。同样,当我们心中装满成见、财富、权势的时候,就已经不是自己了;人往往热衷拥有很多,却往往难以真正的拥有自己。



【碗破的启示】

一个卖瓷碗的老人挑着扁担在路上走着,突然一个瓷碗掉到地上摔碎了,但是老人头也不回地继续向前走。路人看到觉得很奇怪,便问:“为什么你的碗摔碎了你却不看一下呢?”老人答到:“我再怎么回头看,碗还是碎的。”你得到什么启示呢?



【要害与敏感关键点】

公司在男厕小便池上贴了一纸条:“往前一小步,文明一大步。”结果地上仍有许多尿渍。后来公司认真吸取教训,纸条改成:“尿不到池里说明你短;尿到池外说明你软”,结果地上比以前干净许多。启示:有时扬其长不如揭其短!给客户的提案要具体并准确地切中其要害与敏感关键点才有效。



【个人与团队】

老师问弟子:一滴水如何能不干枯?弟子沉默不语。老师说道:一滴水,风可以将它吹干、土可以把它吸干、太阳可以把它蒸发,要想要不干枯,只有让它融入大海。一个人无力独撑天下,要想获得成功,就得学会与人合作,独木难林,这就是我们常说的:再强大的个人都不如一个团结的组织。



【比耐力】

两只乌龟在田边相对一动不动,老农对一旁的专家说:它们在比耐力,谁先动谁就输了。专家指着一只龟壳上有甲骨文的乌龟说:据我多年研究,这只乌龟已死五千多年了。另一只乌龟伸出头来说:死了也不说一声,害得老子在这里干等。装死的乌龟大笑说:你输了吧,专家的话你也听!



【经验与学历】

一伙劫匪在抢银行时说了句至理名言:“通通不许动,钱是国家的,命是自己的!”劫匪回去后,其中一新来的硕士劫匪说,老大,我们赶快数一下抢了多少,那老劫匪(小学文化)说:“你傻啊?这么多,你要数到什么时候?今天晚上看新闻不就知道吗?”网友微评:这年头工作经验比学历更重要!



【值得思考】

某人买了一坛好酒,放在小院,第二天,酒少了1/5,便在酒桶上贴了不许偷酒四个字。第三天酒又少了2/5,又贴了偷酒者重罚。第四天,酒还是被偷,于是贴尿桶二字,看谁还喝。第五天他哭了。桶满了……故事还没完,第六天,他再次在酒桶上贴了不许偷酒四字。那一天很多人都哭了。



【鹦鹉与乌鸦】

鹦鹉遇到乌鸦,笼中的鹦鹉安逸;野外的乌鸦自由。鹦鹉羡慕乌鸦自由,乌鸦羡慕鹦鹉安逸,二鸟便商议互换。乌鸦得到安逸,但难得主人欢喜,最后抑郁而死;鹦鹉得到自由,但长期安逸,不能独立生存,最终饥饿而死。做最好的自己,不要羡慕他人的幸福,也许那并不适合你。



【顿悟】

老师问:“有个人要烧壶开水,生火到一半时发现柴不够,他该怎么办?”有的同学说赶快去找,有的说去借、去买。老师说:“为什么不把壶里的水倒掉一些?”。同学顿悟,世事总不能万般如意,有舍才有得。人生的许多寻找,不在于千山万水,而在于咫尺之间。



【化妆品】

朋友刚结婚不久,开了家化妆品店,生意好得不得了。有天我去店里玩,见一40多岁的女顾客问小李:“这款化妆品效果怎么样?”小李:“哦,这款我不熟悉。请等一下,我妈帮你介绍。”说着把他老婆拉了过来。顾客直视其老婆足足十分钟,什么也没问就掏出钱包:“买"。



【营销哲学】

害羞男孩在教室自习,看到一个很中意的女孩,眼看女孩看完书要离开了,害羞的男孩憋红了脸上前搭讪:同学能借我10块钱吃面条吗?钱包丢宿舍了,这是我的学生证,你给我手机号,回头还你钱。女孩想了想说:行吧。正掏钱,男孩又说:要是能借20,我请你也吃一碗。



【琐事】

一只鼬鼠要与一只狮子决战,狮子果断地拒绝了。鼬鼠说:“你害怕了吗?”狮子说:“如果答应你,你就可以得到曾与狮子比武的殊荣;而我呢,以后所有的动物都会耻笑我竟和鼬鼠打架。”不要被不重要的人和事过多打搅,因为成功的秘诀就是抓住目标不放,而不是把时间浪费在无谓的琐事上。



【销售心理】

某富翁娶妻,有三个人选,富翁给了三个女孩各一千元,请她们把房间装满。女孩A买了很多棉花,装满房间的1/2。女孩B买了很多气球,装满房间3/4。女孩C买了蜡烛,让光充满房间。最终,富翁选了胸部最大的那个。这个故事告诉我们:了解客户的真实需求非常重要。



【有效沟通】

两头牛在一起吃草,青牛问黑牛:“喂!你的草是什么味道?”黑牛道:“草莓味!”青牛靠过来吃了一口,愤怒地喊到“你个骗子!”黑牛轻蔑地看他一眼,回道:“我说草没味。”启示:团队合作、管理过程中,能否有效沟通、掌握有效沟通渠道是凝聚竞争力,强化执行力,提升业绩的关键。



美女住酒店一晚

结账时账单800元,她抱怨太贵。经理说这是标准收费,酒店附设泳池、健身房和wifi。美女说自己完全没使用,经理说饭店有提供,是她自己不用。女客人打开皮包掏钱付账,但说要扣除经理和她共度春宵的700元,只拿出100元。经理急呼:“我哪有?”女客人:“我有提供,是你自己不用!”

posted @ 2015-06-13 10:53 paulwong 阅读(1748) | 评论 (0)编辑 收藏

WEB版的REST测试工具


http://hackst.com/


http://www.quadrillian.com/

posted @ 2015-05-27 14:12 paulwong 阅读(619) | 评论 (0)编辑 收藏

深挖BAT内部级别和薪资待遇

1、阿里内部的常见级别和定义


P序列=技术岗 M序列=管理岗 (注:样本有限,以下全部数据仅供参考!)




-阿里的非管理岗分为10级,其中P6、P7、P8需求量最大,也是阿里占比最大的级别。前面例子中那位郁闷的同学拿到了P6+的offer,正处于最庞大但又最尴尬的级别中段,至于为什么差一点儿没拿到P7,难道是HR在省招聘费?


2、阿里的级别对应薪资




阿里薪资结构:一般是12+1+3=16薪;年底的奖金为0-6个月薪资,90%人可拿到3个月。除了薪水,股票也是重要的收入之一,阿里的股票分年限行权,一般4年拿完。


说到股票,顺便普及下常识。股票是公司用来奖励员工忠诚度的,所以阿里分年限行权,要离职套现得准备好充足的现金。因为当月薪水和归属股票是一起算作当月个人收入的,所以归属时通常要缴纳高达45%的个税,然后得到的可能还是限制性股票,还不能马上卖呢。等到可以出售的时候,还得缴纳20%股票增值部分的个人所得税。同时,你必须先缴税,才能归属,缴税还必须用现金,不能sell to cover!So,拿的越多,先拿出的cash就越多,这里面的流动性风险你自己权衡吧。


二、百度内部级别和薪资待遇


1、百度的技术级别


百度有4万人,每年招聘应届生技术产品人员1000人左右,技术岗位级别和阿里类似,分为T序列12级,不赘述了,大概阿里的级别减1或2,就是百度的级别。


主要集中在T5/T6,升T7很困难,T7升T8更困难;T7以上一般就不做coding了;一般来说,在百度待3年能给到T5,很多人都等不到三年,原因下面说,社招过来的,一般是外面公司的技术骨干了;T10是技术总监,十个左右;T11是首席科学家;T12基本没见过。


2、百度薪资的大概范围




百度薪资结构:月薪×14.6(12+0.6+2),其他岗位月薪×14;T5以上为关键岗位,另外有股票、期权;T5、T6占比最大的级别,T8、T9占比最小;级别越高,每档之间的宽幅越大。


百度是一家业务定性,内部稳定,金字塔形的成熟公司。也就是说,大部分事情都是按部就班、驾轻就熟,所有人都比较轻松、稳定、舒服,尤其是对老员工而言。但是对于新员工来说,这意味着成长空间的极度压缩,机会少,上升慢。


百度工资高,福利好,但是这么多年期权已经基本发光了,只有总监以上才有,几十股几百股就算多了。问题就来了,百度新老员工的期权数量太悬殊,据说到百度楼下停车场一看,开卡宴的都是老员工,开捷达的都是新员工,其实很多新员工的贡献比老员工大得多,但是收入反而倒挂,于是很多新人等不到3年就跳了。


三、腾讯的内部级别和薪资待遇


1、腾讯的技术级别


腾讯的分级和阿里/百度都不一样,分为T1/T2/T3/T4共4级,每级又细分为3小级。员工仍然集中在中段,尤其是 T2.3 和 T3.1;想从T2跨到T3,即从2.3升3.1是非常困难的。


2、腾讯的薪酬和级别的关系




腾讯标准薪资是14薪,但是通常能拿到16-20薪;T3.1以上开始另外有股票。值得一提的是,腾讯是有淘汰制考核的。一般一年两次考核(6月、12月),实行末尾淘汰制,0-10%优秀,必须有5%的人转组(转组也可能出现没人接收的情况)或者被开除。升级也和考核结果很有关系,要升一个小等级,必须最近两次考核得过一次A类考核结果。升T3.1是内部晋升的第一道槛,要求架构在领域内优秀,被追问攻击时能无漏洞应答出来——据说只有30%的通过率。同时,腾讯好的一点在于,底层普通员工如果技术真的不错,照样升级,和是不是leader关系不大。leader的带队价值在T3.3时才显现出来。


来看看BAT级别对照表




结语


各个公司头衔名字都不一样,级别的数目也不一样;有些扁平,有些很多level慢慢升;有些薪水范围严格跟级别挂钩,有些薪水和级别并没有绝对对应的关系。无论你是向往BAT还是身居其中,把握每年的评级机会/跳槽机会,建立一条上升的职业曲线更为重要。因为,没有变化是一件很可怕的事情。

posted @ 2015-05-19 12:39 paulwong 阅读(1573) | 评论 (0)编辑 收藏

持续部署,并不简单!

     摘要: 这几年,持续集成随着敏捷在国内的推广而持续走热,与之相伴的持续部署也一直备受关注。自前两年,持续交付这个延续性概念又闯进了国内IT圈,慢慢开始在社区和会议中展露头角。许多不明真相的群众跟风哭着喊着要“上”,而许多前CI的半吊子玩家换件衣服就接着干,有的甚至衣服都来不及换……国内的这些土财主如果不巧请了某些所谓的战略家,除了建了一堆持续集成环境,以及每天嚷嚷着要这个要那个,混乱的状况在根本上没有得到改善。本文无意费力探讨持续集成和持续交付的概念,而是打算谈谈对于大型软件企业,以持续集成为基础实现持续部署(交付)时,所要面对的问题以及可行的解决方案。地主老财们,夜黑风正猛,山高路又远,注意脚下……  阅读全文

posted @ 2015-05-14 20:38 paulwong 阅读(532) | 评论 (0)编辑 收藏

JVM监控与调优

     摘要: 光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之。通过学习,我觉得JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上。下面就将针对这3点进行学习。     (如果您对Java的内存区域划分和内存回收机制尚不明确,那在阅读本文前,请先阅读我的前一篇博客《Java系列笔记(3) - J...  阅读全文

posted @ 2015-05-14 09:44 paulwong 阅读(1118) | 评论 (0)编辑 收藏

Java NIO核心概念及基本读写

     摘要: 面向流的I/O系统一次一个字节地处理数据。一个输入流产生一个字节的数据,一个输出流消费一个字节的数据。为流式数据创建过滤器非常容易。链接几个过滤器,以便每个过滤器只负责单个复杂处理机制的一部分,这样也是相对简单的。不利的一面是,面向流的I/O通常相当慢。    NIO与原来的I/O有同样的作用和目的,但是它使用块I/O的处理方式。每一个操作都在一步中产生或者消费一个数...  阅读全文

posted @ 2015-05-10 20:55 paulwong 阅读(615) | 评论 (0)编辑 收藏

maven3 jetty jrebel 搭建可调式的开发环境

http://my.oschina.net/edeis2012/blog/68831

http://chen-rojer-gmail-com.iteye.com/blog/910748


posted @ 2015-05-10 20:53 paulwong 阅读(620) | 评论 (0)编辑 收藏

实时查看tomcat、apache并发连接数

实时查看tomcat并发连接数

netstat -na | grep ESTAB | grep 8080 | wc -l

实时查看apache并发连接数

netstat -na | grep ESTAB | grep 80 | wc -l

posted @ 2015-05-09 21:06 paulwong 阅读(814) | 评论 (0)编辑 收藏

MONGODB优化资源

把MongoDB当成纯内存数据库使用
http://database.51cto.com/art/201309/411076.htm

Do you want a timeout?
http://blog.mongolab.com/2013/10/do-you-want-a-timeout/


MongoDB 查询超时异常的原因及解决办法
http://database.51cto.com/art/201503/467581.htm


Mongo连接池操作MongoOptions
http://dawn-sky.iteye.com/blog/1343659


posted @ 2015-05-05 17:32 paulwong 阅读(353) | 评论 (0)编辑 收藏

仅列出标题
共116页: First 上一页 37 38 39 40 41 42 43 44 45 下一页 Last