详情请参见DatanodeUtil.java中的函数idToBlockDir(File root, long blockId)。

如果block文件没有放在正确的目录下,则DataNode会出现“expected block file path”日志。

// g++ -g -o block2dir block2dir.cpp

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char* argv[])

{

    if (argc != 2)

    {

        fprintf(stderr, "usage: block2dir block_id, example: block2dir 1075840138\n");

        exit(1);

    }

    const long block_id = atol(argv[1]);

    const int d1 = (int) ((block_id >> 16) & 0x1F);

    const int d2 = (int) ((block_id >> 8) & 0x1F);

    fprintf(stderr, "subdir%d/subdir%d\n", d1, d2);

    return 0;

}

运行示例:

$ ./block2dir 1075840138

subdir0/subdir4

/**

* @return the meta name given the block name and generation stamp.

*/

public static String getMetaName(String blockName, long generationStamp) {

    return blockName + "_" + generationStamp + Block.METADATA_EXTENSION; 

}

HDFS块文件和存放目录的关系的更多相关文章

  1. 修改Sql Server 数据库文件默认存放目录

    -- 更改数据文件存放目录   EXEC xp_instance_regwrite     @rootkey='HKEY_LOCAL_MACHINE',     @key='Software\Micr ...

  2. Outlook2013修改数据文件默认存放目录

    转载 当使用outlook 2013新建Email账户的时候,其数据文件(.ost文件)总是被保存在C盘默认目录“C:\Users\用户名\AppData\Local\Microsoft\Outloo ...

  3. npm下载文件临时目录、实际存放目录路劲

    npm 下载文件临时存放目录 路劲:C:\Users\xxxxxx\AppData\Roaming\npm\node_modules ( C:\Users\dihongwanyan\AppData\R ...

  4. red5 自定义文件存放目录

    Red5 流媒体服务器 自定义文件存放目录 Red5在正常情况下,安装之后文件必须存放在Red5安装目录下的oflaDemo\streams中,不能自定义存放目录,例如Red5 安装在C盘,但是我的文 ...

  5. hadoop 小文件 挂载 小文件对NameNode的内存消耗 HDFS小文件解决方案 客户端 自身机制 HDFS把块默认复制3次至3个不同节点。

    hadoop不支持传统文件系统的挂载,使得流式数据装进hadoop变得复杂. hadoo中,文件只是目录项存在:在文件关闭前,其长度一直显示为0:如果在一段时间内将数据写到文件却没有将其关闭,则若网络 ...

  6. HDFS的Java客户端操作代码(HDFS删除文件或目录)

    1.HDFS删除文件或目录 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.hadoo ...

  7. lnmp更改网站文件和MySQL数据库的存放目录

    购买阿里云服务器,一般建议买一个数据盘,也就是系统盘和数据盘分开,将网站文件和Mysql数据库等都保存在数据盘,即使系统盘或者环境出问题,重置系统盘和重新配置环境,都不会影响数据盘的东西. 配置好LN ...

  8. 关于flex的crossdomain.xml文件存放目录

    最近在项目中遇到flex跨域访问的安全沙箱问题,查资料了解到需要在服务端加上crossdomain.xml文件,即: <?xml version="1.0" encoding ...

  9. django之 文件上传功能(缺陷:无法改存放目录)

    百度云盘:django之 文件上传功能(缺陷:无法改存放目录)

随机推荐

  1. FOR ALL ENTRIES的使用

    使用FOR ALL ENTRIES时注意: 1.一定要确定要有是否为空的判断 2.一定要注明两个表之间数据的关系 eg: IF GT_TJ30T[] IS NOT INITIAL.      SELE ...

  2. win下svn常用操作笔记

    svn基本命令 checkout 检出 把服务器代码下载到本地一份update 更新 把服务器上的最新代码更新到本地commit 提交 把本地代码提交到服务器上 win下svn的客户端工具Tortoi ...

  3. oracle 11g用exp无法导出空表的解决方案

    racle 11g中有个新特性,当表无数据时,不分配segment,以节省空间,当我们用exp导出空表时,无法导出. 解决方法是两个方面, 一是处理现有的空表,让其能导出: 二是设置参数,让后续的新的 ...

  4. Await Async和Thread.waitAll想法?未完待续

    [管理员]四九-李冰-修行者(2216529884) 2017/7/3 17:15:12 看着就可以了,这种东西是有使用场景的.并不是你用了就一定有提升的 [管理员]上海-xx科技(lovepoint ...

  5. 10.31JS日记

    this问题 (1)this是js的一个关键字,指定一个对象,然后替代this: 函数中的this指向行为发生的主体,函数外的this都指向window,没有意义 (2)函数内的this跟函数在什么环 ...

  6. Java中的forin语句

    forin的原理 forin语句是JDK5版本的新特性,在此之前,遍历数组或集合的方法有两种:通过下标遍历和通过迭代器遍历.先举个例子: @Test public void demo() { Stri ...

  7. Spring Boot 2.0(一):Spring Boot 2.0尝鲜-动态 Banner

    Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜 Spring Boot 更换 Banner 我们先来回顾一下在 Spring Bo ...

  8. maven 单元测试 ( http://www.cnblogs.com/qinpengming/p/5225380.html )

     对junit单元测试的报告:类似这样的结果 ------------------------------------------------------- T E S T S ----------- ...

  9. Linux命令大全完整版

      1. linux系统管理命令 adduser 功能说明:新增用户帐号.语 法:adduser补充说明:在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐 ...

  10. WIN8配置IIS8.0+PHP+Mysql+Zend

    第一步 开启WIN8的IIS 8.0  控制面板 → 程序与功能 → 启用或关闭WINDOWS功能 按照上面勾选 确定即可 成功安装完毕 打开  http://localhost/ 或者 http:/ ...