当前位置: 首页 > news >正文

Java MR Map Reduce 模型


学习一个模型,框架之前最好的方法就是你自己尝试去实现
模型是将一种解决固定场景的方法和行为固化下来
框架是将模型中固定的行为方法固化,将可变的部分按照某种方法让用户自己实现


角色:
1. master:接受任务,拆分任务,下发任务
2. mapper:根据任务边界,读取任务块,任务处理,综合初步的结果
3. reduce:输出最终统计结果,并输出结果


处理过程:Input→Mapper→shuffle→Reducer→Output
1. 任务边界:
    - 目标:100个任务,拆分为10个,每个task executor需要可以知道自己需要处理哪些任务
    - 要求:有序,间隔一致
    - 举例:如UUID的主键根本没法用;雪花ID有序,但间隔不确定;mysql的自增ID可以;固定文件的行号也可以
2. 任务读取:
    - 目标:给我分配的是10-19号的任务,那么就需要可以直接读取10~19号任务,即:随机读取
    - 组件:如果按照MySQL存储任务,则自增ID就可以读取行;如果是文件存储,那么S3,DFS都支持随机读取行
3. 处理者分任务:
    - 微服务实例可以是多个,而访问这些机器都是通过负载均衡,实际访问哪个机器都不清楚,怎么区分不同机器,进行任务的不同下发呢
    - master需要可以控制mapper的梳理和输入
4. 结果汇总预处理
    - 汇总结果机器也会多台,怎么进行汇总任务的拆分呢? 这个维度一般按照结果维度进行拆分
    - 拆分维度:比如结果要一个人的工资,那么按照工资,个税,福利等维度拆分
    - 目的,这个拆分的目的汇总不过来进行任务的拆分,方便汇总
5. 结果汇总
    - 将不同维度的结果按照一定规则综合

谷歌论文:
https://research.google/pubs/mapreduce-simplified-data-processing-on-large-clusters/
四火:
https://www.raychase.net/6422


http://www.mrgr.cn/news/12489.html

相关文章:

  • 加速打开gtihub的工具dev-sidecar
  • vs 项目.gitignore设置过滤某个文件夹无效
  • 鸿蒙(API 12 Beta3版)【使用智能PhotoPicker】Media Library Kit媒体文件管理服务
  • 《机器学习》 SVM支持向量机 推导、参数解析、可视化实现
  • 期权交易误区分享:喜欢重仓!
  • 《深入剖析 Spring Boot 中的循环依赖问题及解决方案》
  • 智能计算方法与实现1|禁忌搜索算法|Rastrigin函数|压力容器设计问题
  • zookeeper客户端命令行操作、节点类型及监听器
  • SQL血缘解析
  • 美国洛杉矶服务器地址在哪里?
  • 成功解决:删除WSL2 Ubuntu中的文件后C磁盘空间不释放的问题
  • 畅玩游戏:2024四大远程控制软件推荐!
  • 大模型实战-FinGLM解析金融财报做RAG经验参考篇
  • 深度学习100问10-什么是CBOW模型
  • CAS5和CAS6自定义异常提示消息
  • Mysql的查询指令
  • WiFi标签注册(电脑版)
  • 【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)
  • mac在终端中使用vscode打开文件或者文件夹
  • AI 大模型时代,对前端工程师有哪些机遇和挑战?