第四部分所有的模式涉及一个共同点: 不会改变原有的记录。 这些模式都是寻找数据子集的,不管结果集的规模是小(top10)还是大(像去重结果)。 与第三部分差异是,他们通过对数据的相思子端坐概要与分组来得到数据的高层次视图的。 而过滤更关注理解较小的数据。

    简单随机抽样 :是过滤的一个常见应用,比如提取某字段最高记录,或者随机抽取几条。   抽样可以用来得到 更小的,更具有代表性的数据子集。 很多机器学习算法在大数据集上运行不够高效,所以需要为提取较小的数据子集创建新的模式。
    当选取的比例是一个很小值的时候,你会在输出结果中发现大量的小文件,如果遇到这种情况
可以设置 reduce 数目为1, 并且不指定 reduce 类。 这就是要求 MapReduce 框架使用一个 identity reduce 简单的手机输出并写到一个文件中。
    2 hdfs dfs -cat 将输出文件收集到一起。
    布隆过滤    :  对每一条记录抽取其中一个特征,如果特征是布隆过滤器集合中的成员或非成员就保存或丢弃。   作用是预先判定值列表成为热门值的集合( hot values);
    使用步骤:1 布隆过滤器训练,2 使用布隆过滤器
    布隆过滤使用场景1:
    给定一个用户评论列表,过滤掉声望值小于1500的用户 发出的评论。
    Mapper.setup(){ bloomFilter()} :  在所有 mapper() 执行之前,会先执行 setup()。  在 setup() 中用 布隆过滤器 过滤不属于bloomFilter方法过滤 1500 的用户ID。 bloomFilter 初始化后,setup 会产生一个 HBase 表的连接。
    Mapper.mapper() : 数据通过 bloomFilter() 过滤后 继续使用 ID 到 HBase 进行查询。。
    布隆过滤使用场景2:
    需要一个全量的两个百亿级文件的对比 A 文件百亿行 B 文件百亿行。 每行字符串大小在50KB。
    Mapper.setup(){ bloomFilter }  这里的 bloom 过滤器作用是 将每行 50KB的数据进行压缩 变成一个 shar1 或者 MD5 这样便于存储在内存内,而不至于撑爆内存。
    Top10    :
    Top10场景:异类分析、热点分析
    特性: 1 Top 方式的分界线是模糊的。 优势 不必全部排序。   如 hive select x from xxx  desc limit 10.
    2  需要配置 作业为 一个 reduce。
    Map code :  
    1 map() 创建一个 TreeMap 
    2 map() 添加数据进入 TreeMap。  每次判断是否大于10  大于10 则 treeMap.remove(treeMap.firstKey());
    3 cleanup() 中遍历 TreeMap数据。 循环写出。  等待 Reduce shuffer
    去重        :
    这个不难理解,就是去除重负记录,MR结构式  M 做数据转换,利用 combiner 做去重,reduce
    使用场景:
    1 数据去重  2 抽取重复值  3 规避内连接的数据膨胀。(如果你在两个数据集之间做一个内连接,并且外检不唯一,  数据A 3000个  数据B 2000 个 最终将是 6 百万记录。 这么多的记录将会集中发给 reduce。 通过使用去重。可以减轻数据膨胀)。
    性能:
    主要考虑 reduce 数目。  从 map 过来的字节数取决于 conbiner 可以消除多少数据。 如果重复记录少见,差不多所有数据都会发送到 reduce 端。  最好的情况是每个 reduce 收到的记录量不小于一个 block 大小。 对于非常大的数据集,可以考虑两倍于集群 reduce 槽容量的大小。
    MR code:比如一个只关心用户ID去重。  用户ID 做键, null 作为值。
M: 将数据读取,ID左键, null 做值。
    job中 设置 combiner。  重复键移除
    R   : 得到去重 ID 后的操作。
    
    
来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/rocky24/p/69df3dace36ca14d75f1570272fffdaf.html

四 过滤模式 map Only - 作业完成 bloomFilter、top10、去重相关推荐

  1. 管道过滤模式 大数据_大数据管道配方

    管道过滤模式 大数据 介绍 (Introduction) If you are starting with Big Data it is common to feel overwhelmed by t ...

  2. 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)

    设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型) 1.概述 类中的面向对象编程封装应用逻辑.类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态.单独的对象是一种组织代码的有用 ...

  3. spi协议时序图和四种模式实际应用详解

    大家好,我是无际. 上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法. 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识. 特别是SPI ...

  4. 纹理过滤模式中的Bilinear、Trilinear以及Anistropic Filtering

    转载自:http://www.cnblogs.com/cxrs/archive/2009/10/18/JustAProgramer.html 1. 为什么在纹理采样时需要texture filter( ...

  5. ThinkPHP的访问模式分为四种模式

    ThinkPHP的访问模式分为四种模式 0 普通模式 http://www.yual.com/index.php?m=user&a=show 1 pathinfo模式 http://www.y ...

  6. gRPC四种模式、认证和授权实战演示

    前言 上一篇对gRPC进行简单介绍,并通过示例体验了一下开发过程.接下来说说实际开发常用功能,如:gRPC的四种模式.gRPC集成JWT做认证和授权等. 正文 1. gRPC四种模式服务 以下案例演示 ...

  7. lvs工作在第几层_LVS 原理(调度算法、四种模式、四层负载均衡和七层 的区别)...

    目录 lvs的调度算法 lvs的四种模式 四层均衡负载和七层的区别 1.lvs调度算法(最常用的四种) 轮叫调度(rr) 调度器通过外部请求的顺序轮流分配到集群中的真实服务器上,对每台服务器都是均等的 ...

  8. 2021年用独立站铁赚的四种模式

    近期独立站建站平台发布财报,在2020年一年时间里,GMV 翻了一番.这个结果充分说明了独立站越来越受到卖家们的青睐,布局独立站也成为了必备标配. 想在2021年里利用独立站走上人生巅峰?那必然离不开 ...

  9. 企业风险管理的四种模式五种策略分别是什么?

    企业风险管理一直是一个经久不衰的话题,企业风险管理对于企业主来说尤为重要,这在很大程度上关系着企业能否健康的发展.鉴于很多人对于企业风险管理这一内容了解不是很透彻,今天分享企业风险管理的四种模式和五种 ...

最新文章

  1. [SCOI2005]栅栏(贪心+二分+dfs)难度⭐⭐⭐⭐
  2. card样式 layui_layui样式修改
  3. 片(Slice)结构
  4. example:利用impdp通过dblink导入数据库
  5. SQLite3.8.4.2在Windows平台下的编译和使用
  6. 实现sessionfilter_session应用--采用filter和session实现简单用户权限控制
  7. 区块链到底是什么?和普通人有什么关系?
  8. 日志管理-NLog日志框架简写用法
  9. 【转】Windows和Ubuntu双系统,修复UEFI引导的两种办法
  10. LINUX用C建立多级目录(测试通过)
  11. 聊城初中计算机考试成绩查询,聊城市初中学业水平考试成绩查询系统入口2021...
  12. MPEG Audio 简述
  13. uQRCode二维码生成+样式
  14. Python3 Django的补充
  15. 三坐标检测基础知识之建立工件坐标系
  16. 如何快速发现panic
  17. C语言 谭浩强 题目 -第八章
  18. “天成云”品牌发布——Tungsten Fabric助力开源开放生态发展
  19. 反应性磷脂PEG试剂DSPE-PEG-amine|CAS:474922-26-4|DSPE-PEG-NH2
  20. 小熊派 移植TencentOS-tiny+EC20+MQTT对接腾讯云

热门文章

  1. python认证考试mac_Mac OS 平台使用 Python 和 Docker 创建测试用 Https Server
  2. php 有request,请问,php中的$_REQUEST是什么意思啊?
  3. excel制作录入和查询系统_Excel进销存管理系统,完整函数应用,出入查询库存更新自动显示...
  4. java使用libreoffice_关于java使用libreoffice以及openoffice转换问题。
  5. Android DialogFragment
  6. 使用Kotlin的Android菜单
  7. linux (debian) 配置静态ip
  8. Python写数据结构:栈(顺序存储结构)
  9. 开课吧Java面试题:使用 this 和 super 要注意
  10. Django---部署