第三章 第三节 命令行接口

         我们通过与命令行与HDFS交互来了解它。HDFS还有许多其它接口,但是

对开发者来说,命令行是最简单的,也是最熟悉的。

         我们将在一台机器上运行HDFS,所以首先根据附录A来搭建HADOOP伪分

布式模式。以后我们会看如何在集群上运行HDFS并提供可靠性及容错处理。

         在伪分布式的配置中,有两个属性需要我们进一步解释。第一个是fs.defaultFS,

设置为hdfs://localhost/,它用来设置HADOOP的默认文件系统。使用URI来定义文件

系统,这里我们使用hdfs URI来设置HDFS默认使用HDFS。HDFS守护进程会根据

这个属性来决定HDFS namenode 的主机及其端口。我们将在本地运行它,使用默认

的HDFS端口8020。HDFS客户端也会根据这个属性来算出namenode的运行地址并

连接它。

         我们设置的第二个属性,dfs.replication,这个值设置为1,所以HDFS不会使用

默认的复制因子(默认为3)来复制文件系统的block。当只运行一个datanode时,

HDFS不能复制block到三个datanode,所以它会一直警告block正在被复制。这个配置

可以解决这个问题。


基本文件系统操作

         文件系统已经准备就绪,一般的文件系统操作我们都可以做,比如读取文件,创建目录,

移动文件,删除数据,列表目录等。你可以输入hadoop fs -help来得到每一个命令的

详细帮助。

         让我们以从本地文件系统拷贝一个文件到HDFS开始:

% hadoop fs -copyFromLocal input/docs/quangle.txt \
hdfs://localhost/user/tom/quangle.txt
         这个命令调用HADOOP的文件系统命令fs,它支持若干子命令----这个例子中,我们运行

-copyFromLocal。本地文件quangle.txt被拷贝到HDFS实例上的/usr/tom/下。实际上,我们可以

省略URI而使用core-site.xml中配置的默认URI:

% hadoop fs -copyFromLocal input/docs/quangle.txt /user/tom/quangle.txt
         我们也可以使用相对路径,把文件拷贝到我们的用户主目录,这个例子中是/usr/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) = e7891a2627cf263a079fb0f18256ffb2
MD5 (quangle.copy.txt) = e7891a2627cf263a079fb0f18256ffb2
        MD5摘要一致,也就是说这个文件从HDFS一日游中活了下来并且毫发无损。

        最后,我们看一下HDFS文件查看。我们创建一个目录来看它在列表中是如何显示的:

% hadoop fs -mkdir books
% hadoop fs -ls .
Found 2 items
drwxr-xr-x - tom supergroup 0 2014-10-04 13:22 books
-rw-r--r-- 1 tom supergroup 119 2014-10-04 13:21 quangle.txt
         这个返回的信息和UNIX命令ls -l返回的很相似,只有一点很少的不同。第一列显示文件模式。

第二列是这个文件的复制因子(UNIX文件系统所没有的)。记住我们设置了默认的复制因子为1,

这就是是我们为什么在这里看到了这个值。对于目录来说这个值是空的,因为对于目录来说没有复制

品这个概念----目录是做为元数据存储在namenode而不是datanode里。第三、四列显示文件的所有

者及所属组。第五列是文件的大小,单位是byte,对于目录来说是0.第六、七列是最后修改日期和时间。

最后,第八列是文件或目录的名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值