Chapter 1.Design Patterns and MapReduce MapReduce 是一种运行于成百上千台机器上的处理数据的框架,目前被google,Hadoop等多家公司或社区广泛使用.这种计算框架是非常强大,但它没有提供一个处理所谓“big data”的通用,普遍的情形,所以它能很好的解决一些问题,在处理某些问题上也存在挑战.这本书教给你在什么问题上适合使用MapReduce和怎样高效的使用它. 初次接触时,很多人没有意识到MapReduce是一种计算框架而不仅仅是一个工具.…
Chapter 3. Filtering Patterns 本章的模式有一个共同点:不会改变原来的记录.这种模式是找到一个数据的子集,或者更小,例如取前十条,或者很大,例如结果去重.这种过滤器模式跟前面章节的不同是,从更小的粒度认识数据,例如特殊用户生成的记录,或文本中用得最多的前10个动词.简单的说,过滤器允许你更清楚的看清数据,像在显微镜下一样.也可以认为是搜索的一种形式.如果你对找出所有有着特殊信息的记录感兴趣,你就可以过滤出不匹配搜索条件的记录. 抽样,一种通用的过滤程序,是指取出数据的…
Inverted Index Summarizations Pattern Description 反向索引模式在MapReduce分析中经常作为一个例子.我们将会讨论我们要创建的term跟标识符之间映射的一般情况. Intent 根据数据集生成索引,用于快速搜索或数据的富集能力. Motivation 根据关键词索引大数据非常方便,搜索能追踪term找到包含指定值的记录.创建索引需要之前进行额外的处理,花时间去做这项工作能有效减少我们寻找东西的时间. 搜索引擎为了提高搜索性能创建索引.设想键入…
Median and standard deviation 中值和标准差的计算比前面的例子复杂一点.因为这种运算是非关联的,它们不是那么容易的能从combiner中获益.中值是将数据集一分为两等份的数值类型,一份比中值大,一部分比中值小.这需要数据集按顺序完成清洗.数据必须是排序的,但存在一定障碍,因为MapReduce不会根据values排序. 方差告诉我们数据跟平均值之间的差异程度.这就要求我们之前要先找到平均值.执行这种操作最容易的方法是复制值得列表到临时列表,以便找到中值,或者再一次迭代…
随着每天都有更多的数据加载进系统,数据量变得很庞大.这一章专注于对你的数据顶层的,概括性意见的设计模式,从而使你能扩展思路,但可能对局部数据是不适用的.概括性的分析都是关于对相似数据的分组和执行统计运算,创建索引,或仅仅为了计数. 通过分组数据集计算聚合排序是一种快速获取结果的好方法.例如,你可能想按某种规则计算出所存的钱的总数,或者按人口计算人们在互联网花费的平均时长.对于新的数据集,你可以开始用这些分析类型帮你计算出数据中什么东西有趣或唯一,和哪些需要仔细研究. 本章的模式有数值聚合,反向索…
翻译的是这本书: Chapter 1.Design Patterns and MapReduce MapReduce 是一种运行于成百上千台机器上的处理数据的框架,目前被google,Hadoop等多家公司或社区广泛使用.这种计算框架是非常强大,但它没有提供一个处理所谓“big data”的通用,普遍的情形,所以它能很好的解决一些问题,在处理某些问题上也存在挑战.这本书教给你在什么问题上适合使用MapReduce和怎样高效的使用它. 初次接触时,很多人没有意识到MapReduce是一种计算框架而…
CHAPTER 7.Input and Output Patterns 本章关注一个最经常忽略的问题,来改进MapReduce 的value:自定义输入和输出.我们并不会总使用Mapreduce本身的方式加载或存储数据.有时,可以跳过在hdfs存储数据这项耗时的阶段,仅存储一些数据,不是全部的,或直接在MapReduce结束后输送给后面的处理.有时,基本的Hadoop规范,文件块和输入分割不能完成你需要的事情,所以要使用自定义的InputFormat或OutputFormat. 本章三个模式处理…
Chapter 5. Join Patterns 把数据保存成一个巨大的数据集不是很常见.例如,用户信息数据频繁更新,所以要保存到关系数据库中.于此同时,web日志以恒定的数据流量增加,直接写到HDFS.这些日志的日常分析过的数据保存在hdfs的某个地方,财务数据存储在加密的仓库中.还有很多例子... (原文are stored someone where in HDFS 貌似应改为 are stored somewhere in HDFS) 数据遍布于各处,本身也很有价值.当我们合起来分析这些…
Chapter 4. Data Organization Patterns 与前面章节的过滤器相比,本章是关于数据重组.个别记录的价值通常靠分区,分片,排序成倍增加.特别是在分布式系统中,因为这能提高性能. 在很多组织结构方面,Hadoop和其它MapReduce使用案例仅仅是大数据分析平台上一片数据的处理.数据通常被转换成跟其它系统有良好接口的形式,同样,数据也可能从原来状态转成一种新的状态,从而使MapReduce分析更容易. 本章包括下面几个子模式: ·分层结构模式 ·分区和装箱模式 ·全…
Chapter 3. Filtering Patterns 本章的模式有一个共同点:不会改变原来的记录.这种模式是找到一个数据的子集,或者更小,例如取前十条,或者很大,例如结果去重.这种过滤器模式跟前面章节的不同是,从更小的粒度认识数据,例如特殊用户生成的记录,或文本中用得最多的前10个动词.简单的说,过滤器允许你更清楚的看清数据,像在显微镜下一样.也可以认为是搜索的一种形式.如果你对找出所有有着特殊信息的记录感兴趣,你就可以过滤出不匹配搜索条件的记录. 抽样,一种通用的过滤程序,是指取出数据的…
 CHAPTER 2 .Summarization Patterns 随着每天都有更多的数据加载进系统,数据量变得很庞大.这一章专注于对你的数据顶层的,概括性意见的设计模式,从而使你能扩展思路,但可能对局部数据是不适用的.概括性的分析都是关于对相似数据的分组和执行统计运算,创建索引,或仅仅为了计数. 通过分组数据集计算聚合排序是一种快速获取结果的好方法.例如,你可能想按某种规则计算出所存的钱的总数,或者按人口计算人们在互联网花费的平均时长.对于新的数据集,你可以开始用这些分析类型帮你计算出数据中…
Chapter 6. Metapatterns 这种模式不是解决某个问题的,而是处理模式的关系的.可以理解为“模式的模式”.首先讨论的是job链,把几个模式联合起来解决复杂的,有多个阶段要处理的问题.第二个是job 合并,用相同的MapReduce job执行多个分析的优化,达到一箭多雕的目的. Job chaining 理解job链接和对job链接的操作计划非常重要.很多人发现用单独一个MapReduce job不能解决一个问题.需要一连串的job需要跑,一些需要其它job的输出.一旦你开始熟…
External Source Input Pattern Description 这种模式不从hdfs加载数据,而是从hadoop以外系统,例如RDB或web service加载. Intent 想要从非MapReduce框架的系统并行加载数据. Motivation 使用MapReduce分析数据通常的做法是把数据先存储到存储平台上,例如hdfs,然后分析.用这中模式,你可以使用MapReduce框架跟外部系统挂钩,例如数据库或web service,把数据直接拉到mapper. 这里有几个…
Chain Folding 这是对job 链的一种优化.基本上是一种大体规则:每条记录都会提交给多个mapper,或者给reducer然后给mapper.这种综合处理方法会节省很多读文件和传输数据的时间.多个job的结构通常这样处理是可行的,因为map阶段是完全无共享的:看起来每条记录是单独的,数据的组织或是否分组是没有关系的.当创建大的MapReduce链时,合并这个链使多个map阶段合并会带来很大的性能提升. 链合并带来的主要好处是减少MapReduce管道中的数据移动量,无论是加载时的io…
Replicated Join Pattern Description 复制join是一种特殊的join,用于一个大数据和许多小数据集map端执行的情况. Intent 这种模式能够消除reduce阶段的shuffle. Motivation 复制join非常有用,除了一个大数据集外,对其它要join的数据集有严格的大小限制.除了这个大数据集外,其它数据在map任务的setup阶段都要进内存,会受到jvm 堆大小的限制.如果能适应这种限制,就能得到大大的好处,因为不存在reduce阶段,因此没有…
Binning Pattern Description 分箱模式,跟前面的类似,分类记录且不考虑记录的顺序. Intent 归档数据集中的每条记录到一个或多个类别. Motivation 分箱和分区很相似,可以用来解决相同的问题.不同点是如何用MapReduce框架建立箱或分区.有些情况下,一种比另一种好用. 分箱是在map阶段分割数据而不是在partitioner阶段.主要的优势是消除了reduce阶段的使用.通常会带来更有效的资源分配.劣势是每个mapper对每个可能的输出箱都对应一个文件.…
Top Ten Pattern Description Top ten模式跟前面的有很大的不同,跟输入数据大小无关,最终得到的记录数量是确定的.而在通用filtering中,输出的规模取决于输入数据. Intent 根据数据集的排名,获取相对较小的前K条记录,不管数据量多大. Motivation 在数据分析中,找出离群值是很重要的工作,因为这些记录是典型的最引人关注的独特的数据片.这种模式的关键点是根据指定的规则找到最具代表性的记录,根据这些记录,可能就会找出导致这些记录特殊的原因.如果定义了…
Inverted Index Summarizations Pattern Description 反向索引模式在MapReduce分析中经常作为一个例子.我们将会讨论我们要创建的term跟标识符之间映射的一般情况. Intent 根据数据集生成索引,用于快速搜索或数据的富集能力. Motivation 根据关键词索引大数据非常方便,搜索能追踪term找到包含指定值的记录.创建索引需要之前进行额外的处理,花时间去做这项工作能有效减少我们寻找东西的时间. 搜索引擎为了提高搜索性能创建索引.设想键入…
Median and standard deviation 中值和标准差的计算比前面的例子复杂一点.因为这种运算是非关联的,它们不是那么容易的能从combiner中获益.中值是将数据集一分为两等份的数值类型,一份比中值大,一部分比中值小.这需要数据集按顺序完成清洗.数据必须是排序的,但存在一定障碍,因为MapReduce不会根据values排序. 方差告诉我们数据跟平均值之间的差异程度.这就要求我们之前要先找到平均值.执行这种操作最容易的方法是复制值得列表到临时列表,以便找到中值,或者再一次迭代…
Learning PHP Design Patterns CHAPTER 1 Algorithms handle speed of operations, and design patterns handle speed of development. 算法处理程序运行速度,设计模式处理程序开发速度.…
原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part3-factory/ Design Patterns Simplified - Part 3 (Simple Factory)[设计模式简述--第三部分(简单工厂)] This article explains why and how to use the Simple Factory Design Pattern in softw…
原文链接: http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part-2-singleton/ Design Patterns Simplified - Part 2 (Singleton)[设计模式简述--第二部分(单例模式)]       I am here to continue the explanation of Design Patterns. Today we will explai…
From Head First Design Patterns. Design Principle: Idnetify the aspects of your application that vary and separate them from what stays the same. Here's another way to think about it: Take the parts that vary and encapsulate them, so that later you c…
Apex allows you to build just about any custom solution on the Force.com platform. But what are the common design patterns and associated best practices for Apex development, and how can you leverage these patterns and best practices to avoid reinven…
设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,使用设计模式的目的是提高代码的可重用性,让代码更容易被他人理解,并保证代码可靠性.它是代码编制真正实现工程化. 四个关键元素:(1) Pattern Name, (2) Problem, (3) Solution, (4) Consequences. 01. Factory Method Pattern /* The product should be created by his own factory. */ Log…
When you're on the way which is unknown and dangerous, just follow your mind and steer the boat. 软件模式: 设计模式.体系结构模式.分析模式.过程模式等. 体系结构模式 ANSIIEEEStd1471一200对体系结构的定义:一个系统的基本组织,表现为系统的组件.组件之间的相互关系.组件和环境之间的相互关系以及设计和进化的原则. 黑板模式 黑板模式是一种常用的架构模式,应用中的多种不同数据处理逻辑相…
It's time to review design patterns, especially when I reach the turning-point of my career. That's not a small test, but a challenge to my life. Hold it! http://blog.csdn.net/lovelion/article/details/17517213 View and Diagram 用户视图:Use Case Diagram /…
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周…
The Observer Pattern The Observer is a design pattern where an object (known as a subject) maintains a list of objects depending on it (observers), automatically notifying them of any changes to state. When a subject needs to notify observers about s…
The Module Pattern Modules Modules are an integral piece of any robust application's architecture and typically help in keeping the units of code for a project both cleanly separated and organized. In JavaScript, there are several options for impleme…