mr spark storm 都是分布式计算框架,他们之间不是谁替换谁的问题,是谁适合做什么的问题。

mr特点,移动计算,而不移动数据。 把我们的计算程序下发到不同的机器上面运行,但是不移动数据。

每一个split 是由一个map线程,还是map进程进行处理?  肯定的是,他们之间是并发的。

mr的shuffle阶段,是比较难于理解的,不太便于我们去控制他,我们只能通过程序,控制其中的一部分。shuffle阶段,大多数都是有MR框架自动完成的。

溢写到磁盘中:map执行完成,结果肯定是放在内存中的。 所以达到一定数量之后,就需要溢写到磁盘中。在这之前,需要进行分区(partition)和把当前这个map的输出数据进行排序(sotred)
所以说,写到磁盘中的数据已经分好区了,并且已经排好序了。这都是在map任务所在节点的本地执行的。 其中partition暂时没有体现出作用。而是在fetch的过程中提现出来的。是按照什么
进行分区的呢?是看partition是怎么写的。partition可以由程序员自己写。按照程序员自己的规则实现。也可以不写,有默认的分区规则。默认分区规则是hash模运算(1,获取hash值
,是一个int。2,把这个int值对reduce的个数取模),默认的partition是有可能产生数据倾斜的。比如有两个reduce,没所有map产生的所有结果取模的时候,打个比方,
共有10个map结果,有9个都会1,只有1个为0,这就产生了数据倾斜。
mr如何解决数据倾斜问题和负载均衡。就是通过partition来实现的。如果发现数据倾斜问题,修改我们的partition算法就可以了。

排序,排序的关键是如何比较两个对象,mr自己也有自带的排序规则。默认的是按照对象所对应的ascii码值来排序的,或者说就是按照字典排序
分区不是立刻把数据都分开,而是打一个标号,标注,你是 1区的,你是2区的。在数据传输的 时候才会真正的分开,就是fetch阶段

merge ondisk每次溢写,都会产生一个文件,注意,不是追加,所以溢写次数越多,产生的文件数越多,怎么办呢,需要和并,和并成为一个大一点的文件,和并也有规则,默认按照
hash值和并。你的键的hash进行合并,键相同,就进行合并。合并规则也可以自定义。是combiner,就是每次合并,都会执行combiner的代码。  目的是加快拷贝速度,因为文件数量越少,拷贝越快。

溢写的时候,map任务可能还没有执行完,故可能一次map任务会有多次的溢写。所以会产生多个文件

把map结果的机器上把分给我这个reduce数据拷贝过来,拷贝是根据partition的结果来拷贝的。由于是从多个map的节点上拷贝数据,所以会有多个小文件,此时又会进行一次合并,这次
合并不能人为控制。这次合并,只要是key相同的都会进行合并,这个相同的key,可能来自于不同的map task。合并完成之后,相同key的数据都会在一起。分别传给reduce执行,这个
不是并发的,但是两个reduce是并发的。

比较会调用多次。
先partition,后入 memory buffer
partition是对map的每个结果的分区规则的运算

大数据的两个方向:
1.大数据变成和运维方向
2.数据建模方向,必须是统计学和数据学出来的人。

最新文章

  1. HTML5 File API — 让前端操作文件变的可能
  2. html5的canvas绘制迷宫地图
  3. SharePoint 2013 配置基于表单的身份认证
  4. 如何安装最新的 XFCE 桌面?
  5. 【翻译十一】java-原子性操作
  6. 基于微信红包插件的原理实现android任何APP自动发送评论(已开源)
  7. 【python】format函数格式化字符串的用法
  8. bss 概念
  9. HDU-1052(贪心策略)
  10. 自定义input file样式
  11. C# 获取远程xml文件
  12. 2014牡丹江——Hierarchical Notation
  13. 纯Java代码 图片压缩
  14. Shell出现cd命令无法识别
  15. strpos 返回0时 ,比较false 不能加单引号
  16. Skewed Sorting
  17. Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化(转)
  18. [原创]CentOS下Mysql的日志回滚
  19. Linux学习(1)-常用快捷键、文件管理和查询
  20. 启动Eclipse发生错误:An internal error occurred during: "Initializing Java Tooling".

热门文章

  1. Xamarin.Forms教程Android SDK工具下载安装
  2. 【BZOJ 3309】DZY Loves Math
  3. 【最小乘积生成树】bzoj2395[Balkan 2011]Timeismoney
  4. 【SPFA】POJ3259-Wormhole
  5. [JZOJ5426]摘Galo
  6. AIM Tech Round (Div. 1) C. Electric Charges 二分
  7. c# 简单又好用的四舍五入方法
  8. Oracle数据库查看用户状态
  9. ELK集群模式部署
  10. STL容器简介