与HDFS命令交互时如何指定文件和目录确切位置的URI
2017-09-30 23:08
399 查看
简介
本文介绍URI的基本格式,并结合Hadoop 2.7.x相关HDFS命令,讲解在与HDFS交互中如何指定文件和目录确切位置的URI。URI介绍
维基百科中对URI的定义:统一资源标识符(英语:Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。URI的最常见的形式是统一资源定位符(URL),经常指定为非正式的网址。在Hadoop应用中,URI精确地定位一个特定文件或目录的位置,完整的URI格式为scheme://authority/path。其中Scheme类似于一个协议,它可以是hdfs或file,来分别指定HDFS文件系统或本地文件系统。对于HDFS,authority是NameNode的主机名,而path是文件或目录的路径。
伪分布式模式的应用
在本文中,我们假设当前登录用户名为hadoop。对于在本地机器的9000端口上,以标准伪分布式模型运行的HDFS,访问用户目录user/hadoop中文件example.txt的URI大致为hdfs://localhost:9000/user/hadoop/example.txt.可以使用Hadoop的cat命令来显示该文件的内容:hadoop fs -cat hdfs://localhost:9000/user/hadoop/example.txt
大多数设置情况下不需要指定URI中的schema://authority部分。当本地文件系统和HDFS之间复制文件时,Hadoop中命令会分别把本地文件系统作为源和目的,而不需要指定为scheme为file。对于其它命令,如果未设置URI中scheme://authority,则使用Hadoop的默认配置。假如etc/hadoop/core-site.xml文件的配置为伪分布式配置,则文件中fs.defaultFS属性应为
<property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>在此配置下,URI hdfs://localhost:9000/user/hadoop/example.txt缩短为/user/hadoop/example.txt。此外,HDFS默认当前工作目录为/user/$USER,其中$USER是用户的登录名。如果当前用户为hadoop用户,则URI hdfs://localhost:9000/user/hadoop/example.txt就缩短为example.txt
分布式(集群)模式的应用
在集群模式下,如果与集群的HDFS交互时,必须指定URI中的scheme、authority、path,三个配置均不能省略。我们可以查看主节点的etc/hadoop/core-site.xml配置文件,查看fs.defaultFS属性<property> <name>fs.defaultFS</name> <value>hdfs://hadoop-master-vm:9000</value> </property>同样以Hadoop的cat命令为例来显示example.txt文件内容:hadoop fs -cat hdfs://hadoop-master-vm:9000/user/hadoop/example.txt
相关文章推荐
- 如何使用find命令 递归删除目录下指定的文件
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- linux如何查找文件或者目录的位置相关命令汇总
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录
- Linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- 如何查看某个指定目录下的所有文件,只要显示其文件名,并把它输出
- find命令查找某些文件并将其拷贝到指定目录
- Linux下如何遍历指定目录下的所有文件并删除指定天数之前创建的文件
- hdfs 如何列出目录下的所有文件
- shell如何在指定文件的指定位置后面添加内容
- HTML如何把文件上传到指定目录下
- 备份指定文件到用户主目录,使用tar命令压缩并发送邮件
- vs visual studio 2015中如何在当前的项目管理器中打开文件?如何打开指定的方法名称,如何显示到指定的方法的那个位置