zoukankan      html  css  js  c++  java
  • namenode 和 datanode 节点

    Hadoop 中namenode和datanode理解

    源自资源:https://www.cnblogs.com/forget-me-not/p/5749256.html

    namenode:
    namenode是中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的命名空间以及客户端对文件的访问。

    namenode相当于是datanode的索引。

    文件操作,namenode负责文件元数据的操作,datanode负责处理文件内容的读写请求,跟文件内容相关的数据流不会经过namenode,只会询问它跟哪个datanode联系,否则namenode会成为系统的瓶颈。

    副本存放在哪些datanode上有namenode来控制,根据全局情况作出块放置决定,读取文件时那么莫得尽量让用户先读取最近的副本,降低带块消耗和读取延时。

    Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告。接收到心跳信号意味着该Datanode节点工作正常。块状态报告包含了一个该Datanode上所有数据块的列表。

    Namenode是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限)以及每个文件的块列表,以及块所在的DataNode等等。

    datanode:

    一个数据块在Datanode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。

    Datanode启动后想namenode注册,通过后,周期性(1小时)的向namenode上报所有的块信息。

    心跳是每3秒一次,心跳返回结果带有namenode给该Datanode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个Datanode的心跳,则认为该节点不可用。

    集群运行中可用安全加入和退出一些机器。

    文件切分成块,(默认大小128M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3)

    Datanode在本地文件系统存储文件块数据,以及块数据的校验和。

    可以创建,删除,移动和重命名文件,当文件创建,写入和关闭之后不能修改文件的内容。

    当Datanode读取block的时候,它会计算checksum,如果计算后的checksum,与block创建时值不一样,说明该block已经损坏。

    如果块已损坏,Client会读取其它Datanode上的block.

    namenode标记该块已经损坏,然后复制block达到预期设置的文件备份数。

    Datanode在其文件创建后三周验证其checksum.

  • 相关阅读:
    学习java随笔第二篇:java开发工具——Eclipse
    GDB
    【转】图像分割(Image Segmentation)
    [转]C#Windows窗体打开图像与保存
    【转】opencv 分水岭算法cvWatershed
    C#中Rectangle(Point, Size) 和Rectangle(Int32, Int32, Int32, Int32) 区别
    【转】数组和图像的转换
    .Net的垃圾回收机制(GC)之拙见——托管类型的垃圾回收
    【动态规划】滚动数组的求解(C++)
    C#编程语言之委托与事件(二)—— C#事件
  • 原文地址:https://www.cnblogs.com/wangzhaoshuang/p/8000447.html
Copyright © 2011-2022 走看看