HDFS工作流程和机制

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程序在分布式运行时有三类

你可能感兴趣的:(hdfs,hadoop,大数据)