HDFS不存在绝对路径,无法找到文件所在具体位置

This is set in the dfs.datanode.data.dir property, which defaults to file://${hadoop.tmp.dir}/dfs/data (see details here).

However, in your case, the problem is that you are not using the full path within HDFS. Instead, do:

hadoop fs -ls /usr/local/myhadoop-tmp/

Note that, you also seem to be confusing the path within HDFS to the path in your local file system. Within HDFS, your file is in /usr/local/myhadoop-tmp/. In your local system (and given your configuration setting), it is under /usr/local/myhadoop-tmp/dfs/data/; in there, there‘s a directory structure and naming convention defined by HDFS, that is independent to whatever path in HDFS you decide to use. Also, it won‘t have the same name, since it is divided into blocks and each block is assigned a unique ID; the name of a block is something like blk_1073741826.

To conclude: the local path used by the datanode is NOT the same as the paths you use in HDFS. You can go into your local directory looking for files, but you should not do this, since you could mess up the HDFS metadata management. Just use the hadoop command-line tools to copy/move/read files within HDFS, using any logical path (in HDFS) that you wish to use. These paths within HDFS do not need to be tied to the paths you used in for your local datanode storage (there is no reason to or advantage of doing this).

时间: 2024-08-27 06:11:57

HDFS不存在绝对路径,无法找到文件所在具体位置的相关文章

设置vim的默认工作路径同时与自动设当前编辑的文件所在目录为当前工作路径不冲突

问题: 想让vim自动设当前编辑的文件所在目录为当前工作路径不冲突,但是当vim新建文件的时候,工作路径会又自动切换缓存path下. 如何使当使用vim打开文件时,vim的工作路径是当前文件所在的路径.而当从vim里新建文件的时候,工作路径是自己预设的路径呢? 解决: "自动设当前编辑的文件所在目录为当前工作路径 exec 'cd ' . fnameescape('f:\code') set autochdir "注意,命令的执行顺序不能改变

C# FTP远程服务器返回错误:(550) 文件不可用(例如,未找到文件,无法访问文件)

今天用代码删除FTP服务器上的目录时候,报错:远程服务器返回错误:(550) 文件不可用(例如,未找到文件,无法访问文件). 习惯性的google,不外乎以下几点: 1.URL路径不对,看看有没有多加空格,或者大小写问题 2.权限是否足 3.需要反复连接的时候,如GetFileList,需要递归获得所有文件,keepAlive则设成false,一个查询请求完了后就关闭. 照做后问题依旧,很苦恼! 然后在FTP上建立了一个空目录,删除之,竟然能删除了.... 所以,找到原因:删除目录,该目录下不能

[Shell]crontab 执行任务调用shell脚本,相对路径无法找到

问题出现的场景大概就是 1  cron调用一个python脚本 2  python脚本中调用一个shell脚本(对日志分析)获取shell输出然后发送邮件 类似一个监控任务. 直接执行python脚本没有问题,但是写在cron中之后,shell脚本中的相对路径就找不到了,总是提示无法找到某些文件 后来解决的问题就是使用log文件的绝对路径,运行就正常了. google了一些,发现很多人也遇到过类似的问题,可能和cron的机制有关系. 大部分人的问题都是因为环境变量造成的,因为cron是一个独立进

JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址

JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址 在写java程序时不可避免要获取文件的路径...总结一下,遗漏的随时补上1.可以在servlet的init方法里String path = getServletContext().getRealPath("/");这将获取web项目的全路径例如 :E:\eclipseM9\workspace\tree\tree是我web项目的根目录 2.你也可以随时在任意的class里调用this.getCla

linux下通过tomcat访问某路径下的文件

背景:linux服务器上有个日志目录,要通过界面访问.之前用Apache实现的,现在安全漏洞检查需要升级Apache,但是安装之路犹如西天取经,各种缺文件,各种报错,一直没搞定.然后决定用tomcat实现该功能. 由于不是常规部署war包,所以需要配置一点小东西.当然也比较简单----感谢百度哈~~ 下边是实现步骤: 1.下载安装tomcat,这个就不赘述了. tar xvf apache-tomcat-8.0.15.tar PS:我的系统实际上是solaris,如果后缀是tar.gz的话直接用

HDFS基本命令行操作及上传文件的简单API

一.HDFS基本命令行操作: 1.HDFS集群修改SecondaryNameNode位置到hd09-2 (1)修改hdfs-site.xml <configuration> //配置元数据存储位置 <property> <name>dfs.namenode.name.dir</name> <value>/root/hd/dfs/name</value> </property> //配置数据存储位置 <property

使用TWindowsMediaPlayer播放网络路径的音频文件

  Delphi自带的TMediaPlay控件不能播放网络路径的音频文件,上网查了一下,比较简单的就是使用windows系统自带的WindowsMediaPlay控件.   1. 导入WindowsMediaPlay控件   我用的Delphi XE8,其他的也大同小异.  Component -> Import Component -> Import ActiveX Control -> 找到Windows Media Play ->   默认选择就可以 -> 四个选项1

Java中通过相对路径来定位文件

通常我们定位文件都是通过绝对路径进行定位,比如“F:/Java/bin/test/test.java”,这样的缺点就是,一旦项目文件移动,这些路径就完全失效. 所以,下面我们来介绍一种通过相对路径来定位文件的方法.我用的IDE是eclipse,项目路径下有src和bin文件夹分别存放,java的源代码和编译文件. 如图,我的工程名是project,在F盘的study目录下,包名是com.www,源文件是Test.java 我们知道,java的源文件编译后才能运行,也就是java运行的其实是Tte

Java判断两个路径对应的文件是否相同

今天遇到一个bug,查了一个小时才发现是文件路径比较出了问题: 比如有两个路径:D:\dir\..\a.txt和D:\a.txt.这两个路径写法虽然不同,但是很容易知道这两个路径指向的是同一个文件.如果我们使用Java的File去判断两个路径是否相同,判断如下: File f1 = new File("D:\\dir\\..\\a.txt"); File f2 = new File("D:\\a.txt"); System.out.println(f1.getAbs