`
zhaomengsen
  • 浏览: 212031 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论
阅读更多
DatanodeID

public String name;    
/// 内容存放 :“hostname:portNumber” 也可以没有端口
///name 的值配置在这个 hdfs-site.xml的{dfs.datanode.address}

public String storageID;
/// 存放介质 不同机器存放不同介质。
protected int infoPort;   
/// infoserver 的端口
  public int ipcPort;   
/// ipc server 端口

方法:

读出主机ip
  public String getHost() {
    int colon = name.indexOf(":");
    if (colon < 0) {
      return name;
    } else {
      return name.substring(0, colon);
    }
  }
  读出主机端口 默认是50010
  public int getPort() {
    int colon = name.indexOf(":");
    if (colon < 0) {
      return 50010; // default port.
    }
    return Integer.parseInt(name.substring(colon+1));
  }


equals和hashCode 由name 和storageID共同决定

public boolean equals(Object to) {
    if (this == to) {
      return true;
    }
    if (!(to instanceof DatanodeID)) {
      return false;
    }
    return (name.equals(((DatanodeID)to).getName()) &&
            storageID.equals(((DatanodeID)to).getStorageID()));
  }
 
  public int hashCode() {
    return name.hashCode()^ storageID.hashCode();
  }

  因为介质不可能发生改变。 所以updateRegInfo只有三个参数
  public void updateRegInfo(DatanodeID nodeReg) {
    name = nodeReg.getName();
    infoPort = nodeReg.getInfoPort();
    ipcPort = nodeReg.getIpcPort();
    // update any more fields added in future.
  }

分享到:
评论

相关推荐

    Hadoop源代码分析(三二)

    2. **准备应答并更新DatanodeID**:对于每个接入请求,NameNode都会准备相应的响应,并更新请求中包含的`DatanodeID`。 3. **获取对应的DatanodeDescriptor**:NameNode会根据`StorageID`从`datanodeMap`中查找对应...

    源代码分析(一九).docx

    - `DatanodeInfo`和`DatanodeID`:这两个类在`org.apache.hadoop.hdfs.protocol`包中,分别表示DataNode的基本信息和唯一标识。 - `DatanodeDescriptor`:继承自`DatanodeInfo`,提供了更多的附加信息,如Block的...

    Hadoop源代码分析(一九)

    转向`Datanode*`类,`DatanodeID`和`DatanodeInfo`在`org.apache.hadoop.hdfs.protocol`包中定义,而`DatanodeDescriptor`是`DatanodeInfo`的子类,增加了更多NameNode所需的状态信息。`DatanodeDescriptor`包含`...

    Mycat主从与读写分离配置详解与示例

    &lt;datanode id="dn1"&gt; &lt;dbhost&gt;192.168.1.1 &lt;dbport&gt;3306 &lt;dbname&gt;test &lt;username&gt;root &lt;password&gt;password &lt;writeHost id="writeHost1" weight="1"&gt; &lt;readHost id="readHost1" weight="1" load="1" ...

    hadoop2.0 2个namenode 2个datanode 部署

    在启动服务之前,我们需要格式化 Namenode,使用命令 ${HADOOP_HOME}/bin/hdfs namenode -format -clusterid [clusterID]。然后,在某个 Namenode 上执行 ${HADOOP_HOME}/sbin/,启动服务。 高可用性 在这个部署...

    hadoop client与datanode的通信协议分析

    客户端首先创建一个新的SocketOutputStream,向DataNode发送读取Block的请求头,包括数据传输版本、操作类型、Block ID、生成戳、起始偏移量和读取长度等信息。接着,客户端创建SocketInputStream,并检查返回的消息...

    四结点hdfs搭建

    - 使用`cat ~/.ssh/id_rsa.pub`命令将公钥内容追加到`authorized_keys`文件中,以允许Master无密码登录到Slave节点。 3. HDFS配置: - 虽然具体内容没有在文档中列出,但根据标题可以推断,接下来应该是关于如何...

    hadoop 关闭进程时报错no 进程 to stop

    - 如果你有Hadoop的源码,并且对错误定位有深入需求,可以查看相关源码模块,特别是与进程管理和停止相关的部分,例如`ResourceManager`或`DataNode`的停止逻辑。 9. **工具使用**: - 使用如`jstack`或`ps`命令...

    hadoop常见错误以及处理方法详解

    1、hadoop-root-datanode-master.log 中有如下错误:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in导致datanode启动不了。原因:每次namenode format...

    ID3算法程序代码

    1. **DataNode**:表示决策树的节点,包含属性、子节点和类别信息。 2. **Dataset**:存储数据实例的类,提供数据预处理、计算信息熵等功能。 3. **Attribute**:表示数据集中的一项属性,包括属性名和可能的取值。 ...

    分布式系统大作业(文档)

    Namenode负责维护整个HDFS文件系统的目录树结构和每一个文件的block信息,包括block的id、所在的Datanode服务器等信息。Namenode的元数据管理是HDFS的核心组件之一。 ### Datanode数据存储 Datanode负责存储文件的...

    hadoop节点问题.docx

    1. **查找ID文件**:如果经过检查发现NameNode与DataNode之间的节点ID不一致,那么需要找到对应的ID文件。这些文件通常位于Hadoop的`conf`目录下,文件名为`hadoop-env.sh`。 2. **手动修改ID**:在`hadoop-env.sh...

    大数据开发技术.pdf

    它记录了每个文件对应的block块信息,如block ID和所在的DataNode服务器。 2. 文件块映射:NameNode负责确定文件块到DataNode的映射关系,确保客户端能够找到并访问所需数据。它在客户端与DataNode之间协调数据共享...

    hadoop笔记

    - **Namenode验证文件**:Namenode检查文件是否存在,并获取该文件的元信息(包括Block ID及对应的DataNode列表)。 - **客户端选择DataNode**:客户端选择一个网络距离最近的DataNode,并向其请求读取数据块。如果...

    HadoopFileSystem简介

    而DataNode的VERSION文件中,blk_&lt;id&gt;文件保存具体的数据块内容,blk_&lt;id&gt;.meta文件保存数据块的属性信息,如版本、类型信息和校验和。 HDFS架构通过这样的设计能够支持大规模数据存储,并通过冗余复制提供容错能力...

    hadoop动态增加和删除节点方法介绍

    1、准备新的DataNode节点机器,配置SSH互信,可以直接复制已有DataNode中.ssh目录中的authorized_keys和id_rsa 2、复制Hadoop运行目录、hdfs目录及tmp目录至新的DataNode 3、在新DataNode上启动hadoop ..sbin/...

    Hadoop源代码分析(一 一)

    在Hadoop的数据结构中,`Storage`类是核心,它包含了关于存储的相关信息,如版本号(layoutVersion)、命名空间ID(namespaceID)和创建时间(cTime)。`StorageInfo`是`Storage`的基类,提供了这些基本信息。`...

    Hadoop分布式文件系统架构

    NameNode维护了一个文件系统树,其中包含了文件和目录的元数据,以及文件块的ID列表和位置信息。 ##### 1.4 数据复制 为了提高数据的可用性和容错性,HDFS会对每一个块进行复制。通常情况下,每个块都会被复制三份...

    hadoop hdfs-site配置文件详解

    在上面的配置文件中,HDFS 高可用配置被启用,NameNode 的名称服务 ID 被设置为 "ruozeclusterg7",NameNode 的 ID 被设置为 "nn1" 和 "nn2",RPC 通信地址被设置为 "ruozedata001:8020" 和 "ruozedata002:8020",...

Global site tag (gtag.js) - Google Analytics