整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

3.3 命令行接口

hadoop 花牛 10℃ 0评论

现在我们通过命令行交互来进一步认识HDFS。HDFS还有很多其他接口, 但命令行是最简单的,同时也是许多开发者最熟悉的。

我们先在一台机器上运 行HDFS。稍后介绍如何在集群上运行HDFS,以提供伸缩性与容错性。

在我们设置伪分布配置时,有两个属性项需要进一步解释。第一项是 fs.default.name,设置为hdfs://localhost/,用于设置Hadoop的默认文件系统。文件系统是由URI指定的,这里我们已使用hdfs URI来配置 HDFS为Hadoop的默认文件系统。HDFS的守护程序通过该属性项来确定 HDFS namenode的主机及端口。我们将在localhost默认端口 8020上运 行namenode。这样一来,HDFS客户端可以通过该属性得知namenode 在哪里运行进而连接到它。

第二个属性dfs.replication,我们设为1,这样一来,HDFS就不会按默认设置将文件系统块复本设为3。在单独一个datanode上运行时,HDFS 无法将块复制到3个datanode上,所以会持续给出块复本不足的警告。设 置这个属性之后,就不会再有问题了。

 

文件系统的基本操作

 

至此,文件系统已经可以使用了,我们可以执行所有常用的文件系统操 作,例如,读取文件,新建目录,移动文件,删除数据,列出目录,等 等。可以输入hadoop fs -help命令获取每个命令的详细帮助文件。

首先从本地文件系统将一个文件复制到HDFS:

% hadoop fs -copyFromLocal input/docs/quangle.txt

hdfs://localhost/user/tom/quangle.txt

 

该命令调用Hadoop文件系统的shell命令fs,后者提供了一系列子命令, 在这个例子中,我们执行的是-copyFromLocal。本地文件quangle.txt被复制到运行在localhost上的HDFS实例中,路径为/user/tom/quangle.txt。事实上,我们可以简化命令格式以省略主机的URI并使用默认设置,即省略 hdfs://localhost,因为该项已在 core-site.xml中指定。

% hadoop fs -copyFromLocal input/docs/quangle.txt /user/tom/quangle.txt

我们也可以使用相对路径,并将文件复制到HDFS的home目录中,本例中/user/tom :

% hadoop fs -copyFromLocal input/docs/quangle.txt quangle.txt

我们把文件复制回本地文件系统,并检査是否一致:

% hadoop fs -copyToLocal quangle.txt quangle.copy.txt

% md5 input/docs/quangle.txt quangle.copy.txt

MD5 (input/docs/quangle.txt) = al6f231da6b05e2ba7a339320e7dacd9

MD5 (quangle.copy.txt) = al6f231da6b05e2ba7a3B9320e7dacd9

MD5键值相同,表明这个文件在HDFS之旅中得以幸存并保存完整。

最后,我们看一下HDFS文件列表。我们新建一个目录看它在列表中是怎么显示的:

% hadoop fs -mkdir books

% hadoop fs -Is .

Found 2 items

drwxr-xr-x – tom supergroup 0 2009-04-02 22:41 /user/tom/books

-rw-r–r– 1 tom supergroup 118 2009-04-02 22:29 /user/tom/quangle.txt

 

返回的结果信息与Unix命令Is -l的输出结果非常相似,仅有细微差别。 第1列显示的是文件模式。第2列是这个文件的备份数(这在传统Unix文件系统是没有的)。由于我们在整个文件系统范围内设置的默认复本数为 1,所以这里显示的也都是1。这一列的开头目录为空,因为本例中没有使用复本的概念–目录作为元数据保存在namenode中,而非datanode中。

第3列和第4列显示文件的所属用户和组别。第5列是文件的大小,以字节为单位,目录为0。第6列和第7列是文件的最后修改日期与时间。最后,第8列是文件或目录的绝对路径。

转载请注明:全栈大数据 » 3.3 命令行接口

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址