加入收藏 | 设为首页 | 会员中心 | 我要投稿 柳州站长网 (https://www.0772zz.cn/)- 基础存储、数据迁移、云安全、数据计算、数据湖!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

3款文件和对象存储产品

发布时间:2021-01-27 13:27:56 所属栏目:外闻 来源:互联网
导读:客户端通过 Distributed FileSystem 向 NameNode 请求下载文件,NameNode 通过查询元数据,找到文件块所在的 DataNode 地址。 挑选一台 DataNode(就近原则,然后随机)服务器,请求读取数据。 DataNode 开始传输数据给客户端(从磁盘里面读取数据输入流,以Pac
  • 客户端通过 Distributed FileSystem 向 NameNode 请求下载文件,NameNode 通过查询元数据,找到文件块所在的 DataNode 地址。
  • 挑选一台 DataNode(就近原则,然后随机)服务器,请求读取数据。
  • DataNode 开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。
  • 客户端以 Packet 为单位接收,先在本地缓存,然后写入目标文件。

2.5 NameNode 和 Secondary NameNode

2.5.1 NN 和 2NN 工作机制

NameNode 中元数据单独存到磁盘不方便读写。单独存到内存时,断电会丢失。Hadoop 采用的是如下方式。

FsImage :

元数据序列化后在磁盘存储的地方。包含HDFS文件系统的所有目录跟文件inode序列化信息。

Memory:

元数据在内存中存储的地方。

Edit 文件:

Edit 记录客户端更新元数据信息的每一步操作(可通过Edits运算出元数据)。

一旦元数据有更新跟添加,元数据修改追加到Edits中然后修改内存中的元数据,这样一旦NameNode 节点断电,通过 FsImage 跟 Edits 的合并生成元数据。

Edits文件不要过大,系统会定期的由 Secondary Namenode 完成 FsImage 和 Edits 的合并。
 

  • Distance(/d1/r1/n0,/d1/r1/n0) = 0 同一节点上的进程
  • Distance(/d1/r1/n1,/d1/r1/n2) = 2 同一机架上不同节点
  • Distance(/d1/r2/n0,/d1/r3/n2) = 4 同一数据中心不同机架节点
  • Distance(/d1/r2/n1,/d2/r4/n1) = 6 不同数据中心

2.3.3 副本节点选择

  • 第一个副本在Client所在节点上,如果在集群外则随机选个。
  • 第二个副本跟第一个副本位于同机架不同节点
  • 第三个部分位于不同机架,随机节点。

该方法中,通过view找到mRoots中的对应索引,然后同样走到ViewRootImpl中进行View删除工作,通过die方法,最终走到dispatchDetachedFromWindow()方法中,主要做了以下几件事:

  • 回调onDetachedFromeWindow。
  • 垃圾回收相关操作;
  • 通过Session的remove()在WMS中删除Window;
  • 通过Choreographer移除监听器

Activity、PhoneWindow、DecorView、ViewRootImpl 的关系?

看完上面的流程,我们再来理理这四个小伙伴之间的关系:

  • PhoneWindow 其实是 Window 的唯一子类,是 Activity 和 View 交互系统的中间层,用来管理View的,并且在Window创建(添加)的时候就新建了ViewRootImpl实例。
  • DecorView 是整个 View 层级的最顶层,ViewRootImpl是DecorView 的parent,但是他并不是一个真正的 View,只是继承了ViewParent接口,用来掌管View的各种事件,包括requestLayout、invalidate、dispatchInputEvent 等等。
 

(编辑:柳州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读