• Summary of Spark Streaming

    This blog is a summary of Spark Streaming, to introduce the basic concepts of Spark Streaming, as well as the internals of Spark Streaming, comparison to Storm, also in-production usage of Spark Streaming and important JIRAs in the history of Spark Streaming evolution.

    Read more »

  • Investigation of Dynamic Allocation in Spark

    Dynamic executor allocation is an important mechanism in Spark for better resource scheduling. Today I will give a deep investigation of how this mechanism works, what is the pros and cons of this mechanism and future works we could do on this area.

    Read more »

  • 详细探究Spark的shuffle实现

    在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑,本文就深入研究Spark的shuffle是如何实现的,有什么优缺点,与Hadoop MapReduce的shuffle有什么不同。

    Read more »

  • 使用MapReduce框架实现SimRank算法

    SimRank是一种基于图结构的相似性度量算法,算法依赖于一个基本的事实“two objects are similar if they are related to similar objects”。简单来说,如果两个物体都与另一物体有关联,那么这两个物体就有一定的相似度,因此SimRank是从图的结构来描述物体之间的相似度。本文从SimRank算法入手,介绍算法的时空复杂度和mapreduce框架下的实现,分析其优缺点和框架带来的限制。

    Read more »

  • Spark源码分析之-Storage模块

    前段时间琐事颇多,一直没有时间整理自己的博客,Spark源码分析写到一半也搁置了。之前介绍了deployscheduler两大模块,这次介绍Spark中的另一大模块 - storage模块。

    Read more »

  • 序列的函数式抽象-Spark API设计

    最近钻研于SICP (Structure and Interpretation of Computer Programs),深为lisp所抽象出的公共模式所吸引,联系一直以来所使用的Spark,想到两者对于公共模式提炼的相同之处,有感而发,记下自己的所想。

    Read more »

  • Spark Streaming Job Troubleshooting of Dependency Chain

    Spark Streaming has many commons compared with Spark, it abstracts DStream which based on RDD, its transformations and outputs are similar to Spark. But due to its periodically running property, some problems which may not be serious in Spark will become a big deal in Spark Streaming. This article introduce a dependency chain problem which will delay streaming job gradually and make the job crash.

    Read more »

  • Spark源码分析之-deploy模块

    在前文Spark源码分析之-scheduler模块中提到了Spark在资源管理和调度上采用了Hadoop YARN的方式:外层的资源管理器和应用内的任务调度器;并且分析了Spark应用内的任务调度模块。本文就Spark的外层资源管理器-deploy模块进行分析,探究Spark是如何协调应用之间的资源调度和管理的。

    Read more »

  • Spark源码分析之-scheduler模块

    Spark在资源管理和调度方式上采用了类似于Hadoop YARN的方式,最上层是资源调度器,它负责分配资源和调度注册到Spark中的所有应用,Spark选用Mesos或是YARN等作为其资源调度框架。在每一个应用内部,Spark又实现了任务调度器,负责任务的调度和协调,类似于MapReduce。本质上,外层的资源调度和内层的任务调度相互独立,各司其职。本文对于Spark的源码分析主要集中在内层的任务调度器上,分析Spark任务调度器的实现。

    Read more »

  • 传统的MapReduce框架慢在那里

    本文就两个问题进行讨论:1. 相比于Shark,为什么像Hive之类的传统MapReduce框架比较慢? 2. 对于细粒度的任务模型(fine-grained task model),究竟有些什么优势?

    Read more »

  • Spark Streaming Introduction

    随着big data的发展,人们对大数据的处理要求也越来越高,传统的MapReduce等批处理框架在某些特定领域(如实时用户推荐,用户行为分析)已经无法满足人们对实时性的需求。因此诞生了一批如S4Storm这样的流式的、实时的计算框架。本文介绍的Spark Streaming也正是一个这样的流式计算框架。

    Read more »

  • Spark Overview

    本文章主要对Spark,Spark的基本架构和重要模块作基本介绍,文章不会涉及Spark的安装部署以及使用,对此可以参考Spark官方文档

    Read more »

  • Hello World

    Hello World!

    Read more »