您的位置:首页 > 大数据 > Hadoop

与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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐