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

杭州企业自助建站商城类网站方案

杭州企业自助建站,商城类网站方案,如何提升顾客的体验和服务,官网网上商城1、mapreduce工作流程(终极版) 0. 任务提交 1. 拆-split逻辑切片--任务切分。 FileInputFormat--split切片计算工具 FileSplit--单个计算任务的数据范围。 2. 获得split信息和个数。 MapTask阶段 1. 读取split范围内的数据。k(偏移量)-v(行数据) 关键API:TextI…

1、mapreduce工作流程(终极版)

0. 任务提交

1. 拆-split逻辑切片--任务切分。 FileInputFormat--split切片计算工具 FileSplit--单个计算任务的数据范围。

2. 获得split信息和个数。

MapTask阶段

1. 读取split范围内的数据。k(偏移量)-v(行数据)

        关键API:TextInputFormat。

2. 循环调用mapper.map(k,v) 关键代码:

        while(xx.next){ mapper.map(k,v); }

3. mapper.map执行完毕后,输出k-v,调用k-v的分区计算

        Partitioner.getPartition(k,v,reduceTask数量)--分区号。

4. 将输出k-v{分区号},存入临时缓冲区。环形缓冲区。

         MapOutputBuffer--环形缓冲区。

5. 如果缓冲区写满80%(mapper代码执行完毕),触发spill溢写过程。

        ① 读取k-v{分区号},对溢写范围内的数据进行排序。

        ② 存放到本地磁盘文件中,产生分区内的溢写文件。

6. 溢写完毕后,产生多个溢写文件

        ① 将多个溢写文件合并成1个有序---归并排序。

        ② combiner(分区 合并 调用reducer--局部reduce操作)【如果开启】

结果: 每个MapTask执行完毕后本地磁盘,每个分区(目录)内只有一个文件。(Key有序)

ReduceTask阶段

1. 从各个MapTask节点下载对应分区的结果文件。

        MapTask(分区0文件)

        MapTask(分区0文件)→ ReduceTask-0

        MapTask(分区0文件)

2. merge操作

        ① 排序

        ② 按照key分组

        ③ 将key相同的多个value--->[v,v,v,v]

3. 循环调用Reducer.reduce方法处理数据

        while(xxx){ reducer.reduce(k,vs); }

4. reducer.reduce输出key-value,将数据写入HDFS中。

        TextOutputForamt 格式化数据的工具类

        FileOutputFormat 指定输出HDFS的路径位置。

整个过程简述:

任务提交,根据文件大小切分Split逻辑切片,一个逻辑切分会启动一个Maptesk任务,Maptask会循环读取block块上的数据输出key和value,然后进行分区计算将输出的k、v存入临时缓冲区,缓冲区写满80%后会产生溢写文件(多个),然后将不同分区的多个溢写文件合并为一个溢写文件作为该阶段的输出文件。通过网络传输进入reduceTesk阶段,将不同split逻辑切分中的相同的分区号文件进行合并为一个文件(merge操作),作为reduceeTesk的输入文件,循环调用Reducer.reduce方法执行任务,将数据写入HDFS中。

2、Spill溢写过程详解

发生在MapReduce过程中的排序:

第一次: MapTask阶段环形缓冲区开始spill溢写,缓冲区每次溢写,发生一轮排序。 快排排序

第二次: Maptask多次溢写产生的多个溢写文件(单个文件每部k有序),要做归并排序,maptask每个分区内,只保留1个文件(key有序) 归并排序

第三次: ReduceTask-0 汇总多个MapTask的(对应分区-0)结果文件,归并排序

3、Shuffle过程详解

简言:站在数据的角度来讲,数据从Mapper.map方法离开,一直到数据进入Reducer.reduce方法,中间的过程。

Mapper阶段

2. 循环调用mapper.map(k,v) 关键代码:

        while(xx.next){ mapper.map(k,v); }

3. mapper.map执行完毕后,输出k-v,调用k-v的分区计算

        Partitioner.getPartition(k,v,reduceTask数量)--分区号。

4. 将输出k-v{分区号},存入临时缓冲区。环形缓冲区。

         MapOutputBuffer--环形缓冲区。

5. 如果缓冲区写满80%(mapper代码执行完毕),触发spill溢写过程。

        ① 读取k-v{分区号},对溢写范围内的数据进行排序。

        ② 存放到本地磁盘文件中,产生分区内的溢写文件。

ReduceTask阶段

1. 从各个MapTask节点下载对应分区的结果文件。

        MapTask(分区0文件)

        MapTask(分区0文件)→ ReduceTask-0

        MapTask(分区0文件)

2. merge操作

        ① 排序

        ② 按照key分组

        ③ 将key相同的多个value--->[v,v,v,v]

3. 循环调用Reducer.reduce方法处理数据

        while(xxx){ reducer.reduce(k,vs); }

http://www.yayakq.cn/news/839479/

相关文章:

  • 怀化网站优化哪个好贵阳网站开发哪家便宜
  • 免费开源代码网站枣庄做网站
  • 专业网站开发设计内链wordpress
  • 聊城专业网站建设公司哪家好网站标题可以修改吗
  • 4a级景区网站建设在别的公司做的网站可以转走吗
  • 网站备案 接入商备案网站开发合同 下载
  • 网站首页广告设计一个简单的物联网系统
  • 网站做选择题怎么快速选择网站开发后端怎么开发
  • 手机版官方网站的建设公司网站百度搜索的描述怎么做
  • 株洲网站制作公司上海市公司名称大全
  • 福州网站建设发布宜和购物电视购物官方网站
  • 佳木斯建网站的wordpress 投稿 加标签
  • 昆山城市建设投资有限公司网站代理记账公司利润大吗
  • 建个网站多少钱app如何做wordpress主题
  • 做网站推广电话温州网站开发流程
  • 安徽网站建设制作四川建设学网官方网站登录
  • 建设局网站功能简介旅游网站需求分析
  • 360建站的应用场景狼雨的网站
  • 企业网站的建立和推广wordpress自动采集翻译插件怎么用
  • 那些做网站的那些软件都叫啥网站开发文档价格
  • 对中国建设银行网站的评价北京学设计去哪个网站好
  • 东莞做网站开发的公司自己可以给公司做网站吗
  • 东营市建设监理协会网站电脑版商城网站建设
  • wdcp网站搬家极客学院 网站建设
  • 聊城职业 网站建设与管理西安企业建站机构那里有
  • 深圳 网站 传播单位做好安全生产举报奖励宣传工作的总结
  • 网站建设公式旅游网站开发的重要性
  • ae模板网站推荐淘客网站怎么做排名
  • 北京好的广告公司wordpress神马优化
  • 百度不收录网站首页万网服务器