Hadoop权威指南读书笔记(第三章Hadoop分布式文件系统)

来源:互联网 发布:js json对象按key排序 编辑:程序博客网 时间:2024/04/29 04:52

HDFS的设计建立在这样一个思想上:一次写入、多次读取是最高效的

HDFS中fsck指令会显示块的信息:% hadoop fsck / -files -blocks

HDFS中的名称节点与数据节点

HDFS集群有两种节点:一个名称节点(管理者)和多个数据节点(工作者) 注:没有名称节点 文件系统将无法使用

基本文件系统操作:

1 -copyFromLocal 将本地文件copy到localhost上的HDFS中

2 -copyToLocal 将HDFS中的文件copy到本地

3 查看HDFS文件列表的命令:% hadoop fs -ls .

HDFS中的JAVA接口:

1 从Hadoop URL中读取数据

public class URLCat {  static {    URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());  }  public static void main(String[] args) throws Exception {    InputStream in = null;    try {      in = new URL(args[0]).openStream();      IOUtils.copyBytes(in, System.out, 4096, false);    } finally {      IOUtils.closeStream(in);    }  }}

上述方法中的setURLStreamHandlerFactory在JVM中只能调用一次。

2 使用FileSystem API 读取数据

public class FileSystemCat {  public static void main(String[] args) throws Exception {    String uri = args[0];    Configuration conf = new Configuration();    FileSystem fs = FileSystem.get(URI.create(uri), conf);    InputStream in = null;    try {      in = fs.open(new Path(uri));      IOUtils.copyBytes(in, System.out, 4096, false);    } finally {      IOUtils.closeStream(in);    }  }}
0 0
原创粉丝点击