语言setTimeout OR setInterval?

http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

setTimeout
和setInterval从字面上理应是好领略该忽视的。timeout:延时;interval:间隔;

Introduction

Hadoop分布式文件系统被规划运行在通常的硬件及。它同当前已经有的分布式文件系统有过多形似之地方。然而,也发出不少差。HDFS的容错性很高,并且让设计用来运行于降价的硬件上。HDFS提供高吞吐量的顾使数据,并且符合用在有好老数据集的采用。HDFS是构建Apache
Nutch的功底设备。HDFS是Apache Hadoop核心工程的一样有。

二者的别就是如是其自己之英文讲一样:setTimeout是延时执行,并且它只实行同一蹩脚(ps:当然也闹办法让其无限执行);setInterval是间隔式的履,每隔多少日子即尽同样不成。它会不停地循环往复执行。举个小例子:

Assumptions and Goals

语言 1

Hardware Failure

硬件失败是一致种正常状况而不是异常情况。一个HDFS实例可能鉴于多华服务器机器组成,每令机械都存储方这文件系统上的平片段数据。事实上有不少零件,每个组件失败的几率很怪,这便象征HDFS总是不平稳之。因此,快速去错误的组件,并且自动发现它们是HDFS的一个主干架构目标。

地方说交setTimeout可以兑现循环执行,方法为要命简单,就是用一个递归就可了。(ps:递归可以知道呢当一个函数里面再去调动用它好)

NameNode and DataNodes

HDFS是一个为主结构。一个HDFS集群由一个NameNode和多单DataNode组成。NameNode是一个主服务器,它管理文件系统的命名空间,并且客户端对文本之顾。DataNode管理及的有关的节点的储存。HDFS维护一个文件系统的命名空间,并且同意用户数量因文件形式储存。在里,一个文书给切分成一个要么多单片,这些块被储存于平等多元的DataNode上。NameNode执行文件系统命名空间操作,比如:打开、管理、重命名文件或者目录。它吧保护着块及DataNode之间的投射关系。DataNode负责也这些源文件系统客户端的呼吁提供读写服务。在NameNode指定之下,DataNode也尽块的创、删除、复制操作。

语言 2

HDFS是故Java语言构建的,任何一个支撑Java的机械及且可运行NameNode和DataNode软件。一种植典型的布局方式是故同贵专门的机械上面只安排NameNode,而之实例集众多被的旁的各国一个集群达且运作一个DataNode。HDFS这种架构不能够挡住在同一台集群上运行多个DataNode,但这种状态以真的布局中凡是那个少见的。

这就是说实现原理就是是setTimeout在一个函数内利用,并且她的function函数参数传递的便是其所当的函数。一般情况下递归调用是待发出一个毕的尺码的,不然就变成了死循环。在

The File System Namespace

HDFS的文件系统命名空间与已在的外的文件系统很接近,可以创造、删除、移动文件要目录。HDFS支持用户限额和访问权限控制。HDFS不支持硬链接和软链接,然而它们并没阻碍这种特征的落实。

NameNode维护文件系统命名空间。任何针对文件系统命名空间还是其的习性的改都见面记录及NameNode中。一个下可以指定一个文书在HDFS中当保障的副本的数据。一个文本副本的数量叫做是文件之副本因子,这个信息让积存在NameNode中。

其余编程语言中马上是我们无思只要之结果,但是拿此死循环放在我们的此setTimeout里面来就正好好得实现间隔性的实行函数。不知情我起无出说亮,没有了解的讲话,看代码:又推个小例子(ps:这个事例是当某某平论图书受到见到底,感觉还不错的法,粘贴过来供大家学习)

Data Replication

每个文件给积存吗同文山会海的丘。为了容错,文件之每个片会叫复制。块的深浅及副本因子为部署在每个文件中。在一个文书的备片被,除了最后一个块以外,其余的丘的轻重缓急都无异。应用程序可以指定一个文书之副本数量。在文件被创造的早晚副本因子就为指定了,当然在随后可改。在HDFS中之公文还是只能写一不善的,而且当另时刻都是严的只能写一涂鸦。(PS:也就是说写副了便不克改变了,如果想要改成则需事先下充斥当地修改后还上传)

NameNode会周期性的收取到自汇众多被的每个DataNode的胸跳检测及片报告。收到心跳检测意味着这个DataNode还生活在好健康提供劳务。一个片报告包含这个DataNode上之所有的丘列表。

语言 3

script代码块

Replica Placement: The First Baby Steps

副本存放的职务对HDFS的可靠性与特性至关重要。最佳的副本位置是HDFS区别与其余分布式文件系统的重要性标志。这个特性需要大量之调节和尝试。机架感知副本位置策略的目的是为增强多少的可靠性、可用性和网络带宽的利用率。

一个那个之HDFS集群实例由许多处理器组成,这些计算机通常被在多机架上。不同机架上的星星点点玉微机中通信必须经过交换机。大多数动静下,相同机架上的机中的大网带来富要比不通机架上机械之前的网带来富要好过多。

NameNode决定DataNode所属的机架ID

日常情况下,副本因子是3。HDFS的放策略是,如果是第一次于写在某DataNode上,那么就是停一个副本在此DataNode所在的地头机械及,否则放置于同等机架上的一个任意的DataNode上,其它的副本放置在不同的远距离机架上之有节点,最后一个副本放置在相同的远程机架上之例外之节点上。机架失败的概率要较机架上有节点失败的几率小多。这个方针不影响多少的可靠性和可用性。

只要副本因子大于3,那么第4单同后的重复多之副本的职是轻易决定的,但是每个机架上之副本数量产生一个上限((replicas - 1) / racks + 2

语言 4

The Persistence of File System Metadata

NameNode用一个号称EditLog的作业日志来持久化文件系统元数据的各国一样糟变动。例如,在HDFS上创设一个初文件会招NameNode插入一长达记下到EditLog中。同样的,改变一个文书的副本因子为会见导致往EditLog遇插入一长记下。NameNode用它所于的主机的地头操作系统及之一个文本来存储EditLog。整个文件系统命名空间,包括块及文件之映照,以及文件之系统特性,都见面吃积存到一个号称FsImage的文书中。这个FsImage文件也受贮存在NameNode的地头文件系统中。

NameNode在内存中维系总体文件系统命名空间和文件块的照射。当NameNode启动之时段,或者当检查点被硌的时候,它见面于磁盘中读取FsImage和EditLog,然后根据EditLog构建有的工作及外存中的FsImage,并且刷新新的本及一个初的FsImage到磁盘。它见面截断旧的EditLog,因为这些EditLog中之事体都深受持久化到FsImage中了。这个处理为称之为检查点。检查点的目的在通过举行一个文件系统元数据的快照并且将她保存到FsImage中来确保HDFS可以挺有益于之翻文件系统元数据。代替每编辑一糟就是修改FsImage,我们用这编辑持久化到EditLog。当检查点发生的时,将转移从EditLog写及FsImage。一个检查点被硌在加的时空间隔(dfs.namenode.checkpoint.period)单位凡秒,或者指定文件系统事务累积达到多少多少(dfs.namenode.checkpoint.txns)就接触。如果当时简单独特性都安了,那么首先个达标阈值的将沾检查点。

DataNode将文件数量存放于本土文件系统中。DataNode并不知道HDFS的文本,它只有是将文件之每个片存储到地头文件系统中。DataNode并无是用有着的文书还留存一个目下,它会盖平等栽启发式的点子来支配每个目录下该存放的文书之顶理想数,并且为会见方便的创建子目录。当DataNode启动之时刻,它通过扫描本地文件系统生成一个以及夫地面文件一律的HDFS数据块的列表,并且发送报告被NameNode。这个报告称Blockreport。

 

总结一下:

1、每次元数据的变动都见面为记录及EditLog中

2、文件之处女数据就文件及Block直接的投关系被记录及FsImage中

3、改变不见面懂写到FsImage中,而是先记下及EditLog中,然后当检查点触发的下以EditLog中著录之变动写到FsImage中

4、检查点触发的机会有三三两两独:一个是可由此dfs.namenode.checkpoint.period参数指定多长时间周期性的点一差,另一个凡经过dfs.namenode.checkpoint.txns指定当EditLog中之笔录上多少时点一浅。无论达到特别条件都见面沾,谁先上,谁先点

5、EditLog和FsImage都存放于NameNode所在的机械的地头磁盘上

6、DataNode启动之时光回发送BlockReport给NameNode

语言 5

 

语言 6

 

body代码块

语言 7

 

 好哪,这两者的享用就顶此处了。由于自才疏学浅,有些地方发挥不太规范或者发生无意希望大家指出,共同学习。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图