随着每天都有更多的数据加载进系统,数据量变得很庞大.这一章专注于对你的数据顶层的,概括性意见的设计模式,从而使你能扩展思路,但可能对局部数据是不适用的.概括性的分析都是关于对相似数据的分组和执行统计运算,创建索引,或仅仅为了计数. 通过分组数据集计算聚合排序是一种快速获取结果的好方法.例如,你可能想按某种规则计算出所存的钱的总数,或者按人口计算人们在互联网花费的平均时长.对于新的数据集,你可以开始用这些分析类型帮你计算出数据中什么东西有趣或唯一,和哪些需要仔细研究. 本章的模式有数值聚合,反向索…
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 2 .Summarization Patterns 随着每天都有更多的数据加载进系统,数据量变得很庞大.这一章专注于对你的数据顶层的,概括性意见的设计模式,从而使你能扩展思路,但可能对局部数据是不适用的.概括性的分析都是关于对相似数据的分组和执行统计运算,创建索引,或仅仅为了计数. 通过分组数据集计算聚合排序是一种快速获取结果的好方法.例如,你可能想按某种规则计算出所存的钱的总数,或者按人口计算人们在互联网花费的平均时长.对于新的数据集,你可以开始用这些分析类型帮你计算出数据中…
Chain Folding 这是对job 链的一种优化.基本上是一种大体规则:每条记录都会提交给多个mapper,或者给reducer然后给mapper.这种综合处理方法会节省很多读文件和传输数据的时间.多个job的结构通常这样处理是可行的,因为map阶段是完全无共享的:看起来每条记录是单独的,数据的组织或是否分组是没有关系的.当创建大的MapReduce链时,合并这个链使多个map阶段合并会带来很大的性能提升. 链合并带来的主要好处是减少MapReduce管道中的数据移动量,无论是加载时的io…
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) 数据遍布于各处,本身也很有价值.当我们合起来分析这些…