从HDFS和MapReduce两方面了解Hadoop
不出意外的话,你可以在控制台看到你指定文件的内容。在这一步我遇到一个问题,就是无法直接在 windows 下操作 HDFS,具体的解决方法可以参照这篇文章。FSDataInputStream.seek()方法还可以实现从文件输入流的任意一个绝对位置读取文件内容,比如我们可以在上面代码中添加如下的内容来实现在控制台重复打印文件内容。
创建目录。
查询文件目录。
这里引入一个类 FileStatus,这个类封装了 HDFS 中文件和目录的元数据,包括文件长度、块大小、复本、修改时间、所有者以及权限信息。FileSystem 里面提供的 listStatus 方法可以获取一个目录下的所有目录或者文件的 FileStatus,但是它不会递归获取下级目录的内容,这里可以开发你的想象自己实现一下(Tips:fileStatus.isDirectory()可以判断这个 fileStatus 是否是一个文件夹)。 删除文件或目录。
我们可以看到 fs.delete()这个方法有两个参数,第一个参数很好理解,就是我们要删除的目录或者文件的地址。那么第二个 Boolean 类型的参数呢,如果删除的是文件或者空目录这个参数实际上是会被忽略的,如果删除的是非空目录,只有在这个参数值为 true 的时候才会成功删除。 创建文件和文件写入。 我们通过 FileSystem.create()方法来创建一个文件,这个方法会顺带着创建不存在的父级目录,如果不需要这个的话,最好是在创建之前调用 exists()方法来判断一下,如果父级目录不存在直接报错即可。
(编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |