电商网站的功能有哪些,网络建设解决方案专业公司,建设单位应该关注的网站,装修计算器在线计算HDFS写数据流程#xff08;上传文件#xff09;
核心概念--Pipeline管道
HDFS在上传文件写数据过程中采用的一种传输方式。
线性传输#xff1a;客户端将数据写入第一个数据节点#xff0c;第一个数据节点保存数据之后再将快复制到第二个节点#xff0c;第二节点复制给…HDFS写数据流程上传文件
核心概念--Pipeline管道
HDFS在上传文件写数据过程中采用的一种传输方式。
线性传输客户端将数据写入第一个数据节点第一个数据节点保存数据之后再将快复制到第二个节点第二节点复制给第三节点。
ACK应达响应确认字符
在数据通信中接受方发给发送方的一种传输类控制字符。表示发来的数据已经确认接受无误。
在HDFS Pipeline管道传输数据过程中传输的反方向会进行ACK校验确保数据传输安全。
默认3副本存储策略
默认副本存储策略是由BlockPlacementPolicyDefualt指定
第一块副本优先客户端本地否则随机
第二块副本不同于第一块副本的不同机柜
第三块副本第二块副本相同机架不同机器
流程
1.HDFS客户端创建实例对象DistributedFileSystem,该对象中封装了与HDFS文件系统操作的相关方法
2.调用DistributedFileSystem对象的Create方法通过RPC请求NameNode创建文件。NameNode执行各种检查判断目标文件是否存在父目录是否存在客户端是否具有创建该文件的权限。检查通过NameNode就会成为本次请求下一条记录返回FSDataOutPutStream输入流对象给客户端用于写入数据。
3.客户端通过FSDateOutput输入流开始写入数据
4.客户端写入数据时将数据分成一个个数据包默认64K内部组件DataStream请求N阿门哦的挑选出合适的存储数据副本DataNode地址默认是3副本存储。
5.传输的反方向上会通过ACK机制校验数据数据包传输是否成功
6.客户端完成写入后在FSDDataOutPutStream输出流上调用close方法关闭
7.DistributedFileSystem联系NameNode告知其文件写入完成等待NameNode确认。 MapReduce的核心思想先分后合分而治之
1.Map表示第一个阶段负责拆分“拆分”,即把复杂的任务分解成若干个“简单的子任务”来并行处理。可以进行拆分的前提是这些小任务可以进行并行计算彼此间没有依赖关系。
2.reduce是第二阶段负责合并即对map阶段的结果进行全局汇总
3.这两个阶段合起来正是MapReduce的思想
Hadoop MapReduce 的设置构思
Map对一组数据元素进行某种重复式的处理
Reduce对Map的中间结果进行某种进一步的结果整理 分布式式计算是一种方法和集中计算是相对的。
分布式计算是将应用分解成许多晓得部分分配给多个多台计算机进行处理 MapReduce实例进程
一个完整的MapReduce程序在分布式运行时有三类
1.MRAppMaster负责整个MR程序的过程调度及状态协调
2.MapTask负责map阶段的整个数据流程
3.ReduceTask负责reduce阶段的整个数据处理流程
Hadoop MapReduce官方示例--圆周率PI评估
1.运行MapReduce程序评估一下圆周率的值执行中可以去Yarn页面上观察程序的执行情况。
第一个参数pi表示MapReduce执行圆周率计算任务
第二个参数用于指定map阶段运行任务task次数并发度这里是0
第三个参数用于指定每个map任务取样的个数。这里是50。 第二个实例wordcount单词词频统计
wordcount算是大数据计算领域经典的入门案列相当于Helloworld
map阶段的核心把输入的数据经过切割全部标记1因此输出就是单词《单词1》
shuffle阶段核心经过MR程序内部自带默认的排序分组等功能把key相同的单词会作为一组数据构成新的kv对
reduce阶段核心处理shuffle完的一组数据该数据就是该单词所有的键值对。对所有的1进行累加求和就是单词的总词数。 map阶段执行过程 第一个阶段把输入目录下文件按照一定的标准逐个逻辑切片形成逻辑切片。默认是128MB每一个切片由一个MapTask处理。
第二阶段对切片中的数据按照一定的规则读取解析返回《key,Value》默认的是按行读取数据
第三阶段调用Mapper中类中的map方法处理数据调用一次map方法处理数据
第四个阶段按照一定的规则对Map输出的键值进行分区parting。默认不分区因为只有一个reducetask分区的数量就是reducetask运行的数量。
第五个阶段Map输出数据写入内存缓冲区达到比例溢出到磁盘上。溢出spill的时候进行key进行排序sort
第六阶段对所有溢出文件进行最终的merge合并成为一个文件。
reduce阶段执行流程
第一阶段reducetask会主动从MapTask复制拉取属于自己处理的数据
第二阶段把拉取来的数据全部进行合并merge即把分散的数据合并成一个大的数据在对合并后的数据进行拍讯
第三阶段对排序后的键值对调用reduce方法键排序的键值对调用一次的reduce方法。最后把这些输出的键值写入到HDFS文件中。 Shuffle阶段执行流程
map产生的输出开始到Reduce取得的数据作为输入之前的过程称为shuffle
1.MapshuffleMapReduce任务中的Map输出进行分区、排序和合并。Mapshuffle将Map输出按照键进行划分然后将每个键分配给某个Reducer任务处理。同时Mapshuffle还可以对Map输出进行排序可以按照键或值进行排序。排序可以使得Reducer任务更容易合并相同键的记录减少网络传输和磁盘I/O开销。最终Mapshuffle将分好组、排序好的Map输出传递给Reducer任务进行处理。
2.ReduceshuffleCopy阶段-Merge阶段-Sort阶段
shuffle中频繁涉及到数据在内存、磁盘之间的多次往复。