- 博客(104)
- 资源 (6)
- 收藏
- 关注
原创 突然想写点东西了
一些机缘巧合,让我的思维回到了csdn,看到了上百篇的文章,感受到之前可能自己是影响了一些人的, 突然很是感慨。写这些blog的日子,应该是很幸福的,可以聚焦的做一些自己喜欢的事情,挥洒自己的热爱,心无旁鹭,在键盘上敲敲打打。不确定看到过我blog的同学,还有多少目前依然在关注着,如果有,那么我想是否会再提笔重来。如果提笔重来,我当然会写技术专栏,这个是我安生立命之本; 我应该会写技术领导力? 毕竟我需要推动更多的人,一起来做更牛逼的事儿;我应该会写团队文化的构建,毕竟我要专注大家的技术成长,为大家的
2021-04-16 19:49:11 409 1
原创 使用Kubernetes需要注意的一些问题(FAQ of k8s)
记录了使用k8s过程中遇到的一些问题,不过货有点太干,接下来有时间会写一下关于架构原理和更详细的实践分享
2016-04-29 15:57:57 15860 1
原创 独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!
如果自己的公司需要打造一个适合自己公司内部使用的PaaS,亦或是你想了解一下一个云平台是怎么构建出来的,这篇文章会比较适合你。
2015-10-10 20:40:03 7838 2
原创 庆祝访问过百万
2015年以来自己的确是疏于打理博客了。当然工作忙永远是推脱很多事情的最好借口。但是,自己的确是很忙。今天登陆,突然发现访问量过百万,而且,访问数量是1001001,一个完美的回文数。
2015-04-29 20:21:21 7073 13
原创 Spark技术内幕:Storage 模块整体架构
Storage模块负责了Spark计算过程中所有的存储,包括基于Disk的和基于Memory的。用户在实际编程中,面对的是RDD,可以将RDD的数据通过调用org.apache.spark.rdd.RDD#cache将数据持久化;持久化的动作都是由Storage模块完成的。包括Shuffle过程中的数据,也都是由Storage模块管理的。可以说,RDD实现了用户的逻辑,而Storage则管理了用户
2015-01-18 19:13:13 17729 19
原创 Spark技术内幕:Shuffle的性能调优
通过上面的架构和源码实现的分析,不难得出Shuffle是Spark Core比较复杂的模块的结论。它也是非常影响性能的操作之一。因此,在这里整理了会影响Shuffle性能的各项配置。尽管大部分的配置项在前文已经解释过它的含义,由于这些参数的确是非常重要,这里算是做一个详细的总结。1.1.1 spark.shuffle.manager前文也多次提到过,Spark1.2.0官方支持两种方式的Shuf
2015-01-18 19:09:28 27082 6
原创 Spark技术内幕:Shuffle Read的整体流程
本文详细讲解Shuffle Read的整个过程,包括如何获得Block的元数据信息,进行网络,本地读取。通过一个整体的流程架构图,详细大家可以对整个过程有一个更加深刻的把握
2015-01-12 08:07:31 22998 16
原创 Spark技术内幕:Shuffle Map Task运算结果的处理
Shuffle Map Task运算结果的处理这个结果的处理,分为两部分,一个是在Executor端是如何直接处理Task的结果的;还有就是Driver端,如果在接到Task运行结束的消息时,如何对Shuffle Write的结果进行处理,从而在调度下游的Task时,下游的Task可以得到其需要的数据。Executor端的处理在解析BasicShuffle Writer时,我们知道ShuffleM
2015-01-12 08:02:16 19378 12
原创 Spark技术内幕: 如何解决Shuffle Write一定要落盘的问题?
在Spark 0.6和0.7时,Shuffle的结果都需要先存储到内存中(有可能要写入磁盘),因此对于大数据量的情况下,发生GC和OOM的概率非常大。因此在Spark 0.8的时候,Shuffle的每个record都会直接写入磁盘。一直到1.2.0,Shuffle的数据是一定会写入本地文件系统的,那么对于性能要求非常苛刻的用户,如何获得更好的性能呢?
2015-01-11 15:13:24 20515 8
原创 Spark技术内幕:Shuffle Pluggable框架详解,你怎么开发自己的Shuffle Service?
通过Hash Based Shuffle和Sort Based Shuffle的源码,可以得出使用Spark Pluggable框架开发一个第三方的Shuffle Service是比较容易的;这个容易是指功能实现方面。但是这个实现必须要考虑超大规模数据场景下的性能问题,资源消耗问题。
2015-01-08 07:58:40 16224 5
原创 Spark技术内幕:Sort Based Shuffle实现解析
在Spark 1.2.0中,Spark Core的一个重要的升级就是将默认的Hash Based Shuffle换成了Sort Based Shuffle,即spark.shuffle.manager 从hash换成了sort,对应的实现类分别是org.apache.spark.shuffle.hash.HashShuffleManager和org.apache.spark.shuffle.sort.SortShuffleManager。那么Sort BasedShuffle“取代”Hash BasedS
2015-01-05 07:29:53 19104 7
原创 2015元旦:为什么没有更新博文
正在细读Shuffle和Storage, network的源码。过几天会将相关的成果奉献给大家。正如您看到我博客的侧边栏和下边栏,我正在家2014博客之星的评选,感谢各位的支持。
2015-01-03 21:44:14 13071 2
原创 2014博客之星: 请大家为我投票
我的400多位CSDN的粉丝们,大家动一下鼠标给我投一票吧。衔接: http://vote.blog.csdn.net/blogstar2014/details?username=anzhsoft2008#content 对于非粉丝并且未登录的,可以使用QQ,微博,百度账号等第三方登陆。谢谢
2014-12-31 08:43:49 4410 66
原创 分布式系统的设计几个要注意的地方
最近在做系统升级,由于当时设计的局限,导致系统不停服,保证服务的做法非常麻烦。当时再定方案的时候,由于自己在这方面没有经验,导致有些乐观。到了实际做的时候,预期时间至少比预想的多了一周的时间,要知道,在互联网公司,一周的时间是个非常长的时间。而这一周,还包括了OT。在这里总结一下分布式系统设计的大忌,本来想试着分一下级,但是还是算了,一来标准太多,无法制定一个合适的规则来界定;二来自己的经验也在增
2014-12-25 07:14:49 11120 18
原创 What’s new in Spark 1.2.0
1.2.0 was released on 12/18, 2014在2014年5月30日发布了Spark 1.0 和9月11日发布了Spark1.1.后,Spark 1.2 终于在12月18日发布。作为1.X时代的第三个release,它有什么重要更新呢?
2014-12-23 07:42:40 4468
原创 2014 BDTC 参会有感
中国大数据技术大会(Big Data Technology Conference,BDTC)是目前国内最具影响、规模最大的大数据领域的技术盛会。大会的前身是Hadoop中国云计算大会(Hadoop in China,HiC)。从2008年仅60人参加的技术沙龙到当下的数千人技术盛宴,作为业内极具实战价值的专业交流平台,已经成功举办七届的中国大数据技术大会忠实地描绘了大数据领域内的技术热点,沉淀了行业实战经验,见证了整个大数据生态圈技术的发展与演变。
2014-12-19 07:28:33 5308 10
原创 Spark技术内幕: Shuffle详解(三)
前两篇文章写了Shuffle Read的一些实现细节。但是要想彻底理清楚这里边的实现逻辑,还是需要更多篇幅的;本篇开始,将按照Job的执行顺序,来讲解Shuffle。即,结果数据(ShuffleMapTask的结果和ResultTask的结果)是如何产生的;结果是如何处理的;结果是如何读取的。
2014-12-07 20:46:13 6519 3
原创 Spark技术内幕: Shuffle详解(二)
本文主要关注ShuffledRDD的Shuffle Read是如何从其他的node上读取数据的。上文讲到了获取如何获取的策略都在org.apache.spark.storage.BlockFetcherIterator.BasicBlockFetcherIterator#splitLocalRemoteBlocks中。可以见注释。
2014-11-30 18:18:57 19003 7
原创 Spark技术内幕: Shuffle详解(一)
通过上面一系列文章,我们知道在集群启动时,在Standalone模式下,Worker会向Master注册,使得Master可以感知进而管理整个集群;Master通过借助ZK,可以简单的实现HA;而应用方通过SparkContext这个与集群的交互接口,在创建SparkContext时就完成了Application的注册,Master为其分配Executor;在应用方创建了RDD并且在这个RDD上进行了很多的Transformation后,触发action,通过DAGScheduler将DAG划分为不同的St
2014-11-29 21:39:15 20877 16
原创 感恩节有感
今天感恩节。这一年来,发生了很多事情,如果自己也有一个编年史的吧,那么今年无疑也是有很多可书的地方(sorted by priority):
2014-11-28 11:10:59 4853 3
原创 Linux Debugging (九) 一次生产环境下的“内存泄露”
如何解决一个valgrind和gpreftools都检查不出的”内存泄露“?
2014-11-17 20:45:47 11511
原创 Linux Debugging(八): core真的那么难以追踪吗?
本周遇到了好几个core都很有典型性。在这里和大家分享下。相信有过Linux编程经验的人,肯定都遇到过。感觉周围人很多对core有天然的恐惧感,尤其对刚入行不久的同学来说。当然了,也有工作好几年看到core也束手无策的。今天就分析一下,core,其实大部分都是很容易解决的。如果一个core很难以复现,那么说明还是很复杂的,算是Corner case,可能需要很长时间,脑子里要有很好的运行时状态才可以(阅读源码,学习的是逻辑;将源码对应到运行时的状态,分析一些状态机的转换,再去分析可能会发生的情况)。相信前
2014-10-23 22:58:05 20591
原创 Spark技术内幕: Task向Executor提交的源码解析
在上文《Spark技术内幕:Stage划分及提交源码分析》中,我们分析了Stage的生成和提交。但是Stage的提交,只是DAGScheduler完成了对DAG的划分,生成了一个计算拓扑,即需要按照顺序计算的Stage,Stage中包含了可以以partition为单位并行计算的Task。我们并没有分析Stage中得Task是如何生成并且最终提交到Executor中去的。这就是本文的主题。
2014-10-19 18:16:57 22353 14
原创 Spark技术内幕:Stage划分及提交源码分析
在一个RDD触发了一个action(比如count,collect)时,任务是如何被提交到?什么是Stage?DAGScheduler的作用是什么?它是如何划分Stage的?本文将基于源码,进行深入分析。
2014-10-18 23:05:22 28881 28
原创 Spark技术内幕:究竟什么是RDD
RDD是Spark最基本,也是最根本的数据抽象。http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf 是关于RDD的论文。如果觉得英文阅读太费时间,可以看这篇译文:http://shiyanjun.cn/archives/744.html 本文也是基于这篇论文和源码,分析RDD的实现。第一个问题,RDD是什么?Resilient Distributed Datasets(RDD,) 弹性分布式数据集。RDD是只读的、分区记录的集合。RD
2014-10-07 17:34:53 32764 5
原创 Spark技术内幕:Master的故障恢复
使用ZK作为HA方案的Master是如何快速故障恢复的呢?本文为你详细解读。最后给出的流程图,可以清楚的理解恢复过程的数据流程和处理逻辑。
2014-10-05 03:45:15 12939 9
原创 Spark技术内幕:Executor分配详解
当用户应用new SparkContext后,集群就会为在Worker上分配executor,那么这个过程是什么呢?本文以Standalone的Cluster为例,详细的阐述这个过程。
2014-10-05 01:02:19 42226 30
原创 Spark技术内幕之任务调度:从SparkContext开始
SparkContext是开发Spark应用的入口,它负责和整个集群的交互,包括创建RDD,accumulators and broadcast variables。理解Spark的架构,需要从这个入口开始。
2014-10-01 21:17:33 17138 1
原创 关于自动化部署
对于大规模的集群,相信都有一整套比较完善的自动化部署方案。自动化部署有很多问题值得思考,比如如何均衡的利用每个节点的资源,保证整个集群的负载打散;如果方便的加入新机器,如何在机器物理故障时下线它,然后将部署的任务迁移到其他的备机,有点资源管理的意味了。本文不会讨论这些问题。只涉及一个很简单的场景:如何将应用部署到一定数量的机器,然后启动它。比如你在上线前,需要压力测试,需要评测性能,都可能需要人工的部署几十台机器。如果纯人工,那么可能需要scp,或者wget,或者hadoop client,将应用下载到
2014-09-30 08:22:07 7613 4
原创 Cassandra使用pycassa批量导入数据
本周接手了一个Cassandra系统的维护工作,有一项是需要将应用方的数据导入我们维护的Cassandra集群,并且为应用方提供HTTP的方式访问服务。这是我第一次接触KV系统,原来只是走马观花似的看过KV啊,NoSQL啊。但是实际上没有实际的使用经验。经过两天的学习和接手,终于搞明白了在生产环境中的使用方式。在此简要的笔记一下。本文主要包括的内容有:Cassandra的简介,Cassandra的相关CLICassandra的Python API,并且给出一个批量导入数据的例子。
2014-08-31 11:46:54 12670
原创 关于2014博文大赛
写了5篇文章。其中3篇初赛,其中两篇进了决赛,另外1篇忘记微博推广了,导致网友投票没有超过50。决赛的两篇文章,第一篇我准备了挺久,虽然文字性的东西较多,但是如果仔细读的话,相信对大家会有所帮助。另外一篇写的仓促,在这里感谢各位投票的网友了。
2014-08-13 20:49:40 11227 2
原创 Spark技术内幕:Worker源码与架构解析
Worker所起的作用有以下几个:1. 接受Master的指令,启动或者杀掉Executor2. 接受Master的指令,启动或者杀掉Driver3. 报告Executor/Driver的状态到Master4. 心跳到Master,心跳超时则Master认为Worker已经挂了不能工作了5. 向GUI报告Worker的状态
2014-08-04 21:49:29 16088 16
原创 从Storm和Spark 学习流式实时分布式计算的设计
最近我在做流式实时分布式计算系统的架构设计,而正好又要参见CSDN博文大赛的决赛。本来想就写Spark源码分析的文章吧。但是又想毕竟是决赛,要拿出一些自己的干货出来,仅仅是源码分析貌似分量不够。因此,我将最近一直在做的系统架构的思路整理出来,形成此文。为什么要参考Storm和Spark,因为没有参照效果可能不会太好,尤其是对于Storm和Spark由了解的同学来说,可能通过对比,更能体会到每个具体实现背后的意义。本文对流式系统出现的背景,特点,数据HA,服务HA,节点间和计算逻辑间的消息传递,存储模型,
2014-08-02 17:06:51 46803 18
原创 网页搜索之后的APP搜索
搜索技术是互联网最核心的技术之一。但是移动互联网迅猛发展的今天,互联网产生的数据已经不是简单的网页搜索所能涵盖的了。比如微信公众号,产生了许多优质的内容,如果这些公众号仅仅将这些内容发布到微信平台,那么你通过“传统的互联网搜索引擎”是无法获知这部分资源的。当然了,微信搜索其实只是一个例子,而且去年整合了腾讯搜搜的搜狗已经于今年发布了微信公众号的搜索。其实还有一部分内容没有涵盖,那就是优秀的APP产生的内容。现在很多的APP是依托于网站的,这些APP发布的内容如果也同步于网站,那么这部分内容就不是信心的孤
2014-07-27 16:02:47 18067 3
原创 每个程序员都应该用MBP
作为一名程序员,你可以不用iPhone,但是拥有MBP绝对是必须的。你能想像系统完全启动可以在数秒以内吗?你可以想像使用虚拟机的Win7就如同使用一个普通应用吗?。。。MBP,值得你拥有。
2014-07-20 20:35:03 21758 7
Linux Debugging: coredump 分析的材料
2014-01-27
Linux Debugging: coredump 分析入门的材料
2014-01-27
局域网活动主机的C++实现
2009-03-08
常见的端口扫描的C++实现
2009-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人