问题

问题很简单,shell的几个命令就可以搞定。

但是,如果输入文件很大不能一次载入内存呢?
文件分布在多个机器上呢?

文件可以全部载入内存

文件太大不能一次载入内存

对于此类问题,即大数据问题,可以使用MapReduce

两个MapReduce
第一个MapReduce: WordCount

  • 把每个单词映射成Key-Value pair (Map)
  • 把key相同的value加起来 (Reduce)

此外两步中间有一个shuffle,Hadoop中叫Partitioner,即怎么把中间结果分配到不同机器上去,这里使用HashPartitioner,具有相同hash的单词会分配到相同的Partitioner上。

第二个Sort by Count

  • InverserMapper :把key-value 倒过来
  • TotalOrderPartitioner 按次数排序

单词做hash然后存到不同的shard中(磁盘文件,这样可以对每个shard单独进行sort,最后再merge),这里使用10个shard,那么10GB的数据,每个shard就是1GB数据,然后对每个shard做wordcount(此时可以在内存中做了,每个shard大小小于4GB),最后merge 10个shard到一个output文件(多路归并)。

N-way merge using heap

  1. 取这N个shard的最大元素,做成堆
  2. pop head 就可以得到最大的元素,假设它输入第i个shard
  3. 然后第i个shard再提供一个元素,插入堆,返回第2步。

注意,有可能某个shard提前都用完了,此时堆的大小就变小了。

多机求解

把每个机器看成一个shard,思路同上

PNP : Work Cound Frequence相关推荐

  1. 视觉SLAM中PNP求解

    PNP(Perspective-n-points)是SLAM中估计位姿的重要方法.已知条件为路标点在相机1中的相机坐标以及投影到相机2中的像素坐标,据此去估计相机1.相机2间的位姿.主要解法包括DLT ...

  2. 3D-2D:PnP算法原理

    3D-2D:PnP算法原理 1.问题背景-- 什么是PnP问题 ? 2.PnP问题的求解方法 2.1 P3P 2.1.1 算法的实际理解 2.1.2 算法的数学推导 2.1.3 算法的缺陷 2.2 直 ...

  3. ceres实现的pnp解算后的位姿优化代码详解

    论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章.公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信diany ...

  4. 一文详解PnP算法原理

    PnP(Perspective-n-Point)问题的几何结构如图1所示,给定3D点的坐标.对应2D点坐标以及内参矩阵,求解相机的位姿. 数学语言描述如下: 图1.PnP几何结构 1.直接线性变换法( ...

  5. EPnP:一种复杂度为O(N)的求解PnP问题的方法

    作者:董岩 Date:2020-02-16 来源:EPnP:一种复杂度为O(N)的求解PnP问题的方法

  6. Naigos PNP图无法加载最新数据

    Naigos PNP图无法加载最新数据 前几天IDC断电,设备全部重启,导致nagios pnp图无法正常加载,经过排查发下如下几点状况: 1,查看log日志,并没有报错. 2,npcd没有正常运行, ...

  7. The PNP sensor:- This is a sensor who...

    2019独角兽企业重金招聘Python工程师标准>>> The PNP sensor:- This is a sensor whose output pulls up to the ...

  8. 无盘服务器pnp,深入解读无盘PNP方法,无盘系统PNP并不神秘

    无盘PNP其实并没有我们想象的那么复杂,我们一起来看下无盘系统PNP的过程,要是想要就易游的无盘网卡PNP以及其它设备的PNP做一个简要的说明.希望可以为各位网吧维护的朋友在处理部署复杂网吧的时候的提 ...

  9. LED调光,PFM即pulse frequence modulation

    PWM不是唯一的调制方式,可以PWM,也可以PFM,也可以混合调制. PWM即pulse width modulation的缩写,脉冲宽度调制,保持开关周期不变,调节开关导通时间. PFM即pulse ...

  10. nagios监控告警之网络流量监控(附pnp模板)

    步骤: 1.下载网络流量监控脚本: https://raw.githubusercontent.com/June-Wang/NagiosPlugins/master/check_net_traffic ...

最新文章

  1. hdu1561 树形dp
  2. redhat linux创建磁盘分区,redhat6.4 挂载硬盘,创建新分区,删除分区
  3. VMware Workstation 与 Hyper-V 不兼容
  4. fckeditor 漏洞php,fckeditor上传漏洞利用总结
  5. 如何模拟鼠标的拖拽行为.
  6. NAT 及 NAT 打洞技术
  7. java token_Java实现基于token认证的方法示例
  8. WordPress主题-果核剥壳站长开发CorePress v2.6
  9. MySQL 常用命令大全
  10. [算法]用java实现堆操作
  11. 图形学笔记(四)——Harris 角点检测器延申
  12. 网页视频下载:怎么批量下载网页上的视频
  13. C#如何输入对号字符串
  14. 什么是服务器?服务器是干什么用的?服务器的基本属性有哪些?怎么配置服务器?怎么挑选适合自己的服务器?
  15. 李智慧-我的全栈之路导师之一
  16. C盘清理笔记 msp文件和msi文件
  17. 2.2磁盘IO网络IO工作机制
  18. OpenWrt 一个关于IPv6巨傻X的设置项
  19. PHP使用FPDF的多字体解决
  20. 第三天.......

热门文章

  1. 互联网金融学习总结(1)——互联网金融(ITFIN)概念相关学习
  2. 面试时,当HR问“你有什么要问我的吗”时,应该问什么?
  3. maya2018 bonus tools - Arnold材质库1489行报错问题解决方法
  4. android下拉菜单总结
  5. win7局域网共享设置_教你win7局域网共享设置操作步骤
  6. 主题:讲解三层代码讲解--第三课(*****) DATE:2004-05-28
  7. 简单的下载者木马分析
  8. java前端学习路线
  9. HTML5 弹性布局
  10. foxmai邮件服务器pop,常见pop和stmp服务器地址-foxmail6或outlook邮件管理