讲面(昆山)

本文介绍了MapReduce的过程,包括输入分片、map、combiner、shuffle和reduce阶段,详细阐述了每个阶段的功能。接着讨论了Hive中的自定义函数类型,如UDF、UDAF和UDTF。还提到了Python的基本数据类型和如何用一行代码判断奇偶数。此外,文章还概述了Java的类加载器类型,以及MySQL的左连接和右连接,并探讨了如何在MySQL中进行分组查询。最后,简要说明了Python中单引号、双引号和三引号的区别。
摘要由CSDN通过智能技术生成

1.MapReduce过程

MR流程:输入分片 —> map阶段 —> combiner阶段(可选) —> shuffle阶段 —> reduce阶段

  1. 输入分片(input split):
    把输入文件按照一定的标准分片(InputSplit),每个输入片的大小是固定的。默认情况下,输入片(InputSplit)的大小与数据块(Block)的大小是相同的。
  2. map阶段:
    输入片中的记录按照一定的规则解析成键值对,调用Mapper类中的map方法 比如wordcount 解析成以字符为key value 为1的map
  3. combiner阶段:
    Combiner是一个本地化的reduce操作,它是map运算的后续操作,主要是在map计算出中间文件前做一个简单的合并重复key值的操作
  4. shuffle阶段:
    从功能看,进行合并把分散的数据排序,局部聚合,合并成一个大的数据
    4.1.map端的shuffle
    分区
    在将map()函数处理后得到的(key,value)对写入到缓冲区之前,需要先进行分区操作,这样就能把map任务处理的结果发送给指定的reducer去执行写入环形内存缓冲区 map函数开始产生输出时并非简单地将它输出到磁盘。因为频繁的磁盘操作会导致性能严重下降。它的处理过程更复杂,数据首先写到内存中的一个缓冲区。
    当写入的数据量达到预先设置的阙值后便会执行一次I/O操作将数据写入到磁盘。每个map任务都会分配一个环形内存缓冲区,用于存储map任务输出的键值对(
    spill(溢写)
    作用 把内存缓冲区中的数据写入到本地磁盘,在写入本地磁盘时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止境_--_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值