Hadoop 复习 ---- chapter07【洗牌游戏】

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Hadoop 复习 ---- chapter07【洗牌游戏】

需求现有一把牌除去大小王还剩 52 张这 52 张牌是无序的。现有要求大家将牌按照花色升序的顺序进行归档。
注意每张花色代表 10M。我们的每个 reduceTask 的对内存。现在我们进行设计。

hadoop = MapReduce + hdfs + common
hdfs = namenode + datanode + secondaryNameNode + client == 海量的数据存储
namenode管理系统文件的命名空间
datanode真实的存储数据
secondaryNameNode辅助 namenode 进行数据恢复

client对 hdfs 进行操作
MapReduce = map +shuffle+ reduce
shuffle = map 端的 shuffle + reduce 端的 shuffle
client切片 – map – shuffle – reduce – 归档

  1. 文件的大小 52*10 = 520M这个文件是可以切分的。如何切分。是谁负责切分
    split切分分片。切片。
    问题一是谁负责切分
    client 负责切分。客户端选择 FileInputFormat 的具体实现类进行分片
    如何切分按照书上的规定块的大小为 300M
    第一片0-128M
    第二片128-256M
    第三片256-384M
    第四片384-512M
    第五片512-520M
    规定块的大小为 300M对于我们的牌30张
    第一片30张
    第二片22张

  2. 问题二我们需要开启几个 mapTask
    因为分片的数量决定 mapTask 的数量。

  3. 问题三我们的环形缓存区多大
    100M = 10张

  4. 问题四我们的环形缓存区的阀值是多少
    是 0.8那么这个阀值内存 == 80M == 8 张

  5. 问题五环形缓存区的个数是谁决定的
    mapTask 的数量 == 环形缓存区的数量 == 2 个

  6. 问题六我们应该设置几个分区
    四个花色 == 四个分区 == 4 个 ReduceTask
    黑桃partition0=ReduceTask0
    红桃
    partition1=ReduceTask1
    方片partition2=ReduceTask2
    梅花
    partition3=ReduceTask3

  7. 问题七牌在什么阶段进行的分区
    在写入环形缓存区的时候分区。环形缓存区进行的分区。

  8. 问题八在溢写之前需要进行排序这个排序按照什么排序
    先分区排序再按照 key 排序先按照花色排序然后按照每个花色中的数字的大小排序

  9. 这个 combiner 过程我们是可选的我们不选了。

  10. 我们这个游戏每个环形缓存区一共需要溢写几次以第一片为例300M
    0-8 9-16 17-24 25-30
    要溢写四次每次溢写都要进行排序和溢写
    要溢写四次生成四次溢写文件
    spill0.out spill1.out spill2.out spill3.out
    spill0.index.out spill1.index.out spill2.index.out spill3.index.out

  11. 需不需要归并 merge
    需要归并。归并完成生成 spill.out 和spill.index.out

  12. 生成最终归并文件的数量是谁决定的
    是环形缓存区决定的mapTask 的数量决定 == 是 client 决定
    我们有两个 mapTask == 两个环形缓存区 == 两个 spill.out 文件。

  13. reduce 阶段的 shuffle 过程
    copyreduceTask 主动的拉取 spill.out 中的属于当前区的数据。
    ReduceTask0 主动的拉取两个 spill.out 的黑桃。

  14. 我们一把牌一共有几个黑桃呢
    13 张 == 130M

  15. reduce 拷贝的数据存储在哪里呢
    缓存区中

  16. 这个缓存区多大呢
    设置每个 ReduceTask 的堆内存 = 500M
    那么这个缓存区 == 55*0.7 = 350M

  17. 这个缓存区也是有阀值的 == 0.66
    350 * 0.66 = 213M == 230M == 23 张

  18. 每个 reduceTask 要溢写几次呢
    1 次

  19. 在本地生成一个溢写文件所以归并过程没了。

  20. 这个溢写文件作为 reduce 的输入。

  21. reduce 过程完成。写入到本地。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Hadoop

“Hadoop 复习 ---- chapter07【洗牌游戏】” 的相关文章