0%

定义

Attach additional responsibilities to an object dynamically keeping the same interface.Decorators provide a flexible alternative to subclassing for extending functionality.(动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。)

Read more »

定义

Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.(定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。)

Read more »

定义

Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。)

Read more »

Shuffle是mapreduce编程模型的关键步骤,同样也是在程序运行中主要需要进行调优的阶段,因此更好的理解shuffle原理,才能够在程序中找到需要优化的关键点。

在理解Spark shuffle前先理解标准的mapreduce编程模型中使用的shuffle原理,也就是Hadoop中的MapReduce计算框架。

在mapreduce中默认每一个输入到reducer中的数据都根据key已经排好序了,系统将map端的输出进行排好序,reducer端拉取到数据这一过程就是shuffle。

Read more »

Spark编程模型就是RDD(Resilient distributed dataset)弹性分布式数据集,他是MapReduce编程模型的拓展和延伸,但是他解决了MapReduce的痛点,也就是计算任务的结果如何进行高效的共享。

Spark使用内存计算的模式以及类似与Mapreduce的模型,使得大数据的并行计算得到了提升。而Spark基于RDD模型也同样实现了多类模型计算,如迭代计算、交互式sql、流式数据计算等。

Read more »