大数据-十六

文件模式
使用通配符匹配多个文件;无需列举每个文件和目录来指定输入,而是通过通配符来确定;此操作为通配(globbing)


hadoop为执行此方法提供了连个FileSystem方法;
public  FileStatus[] golbStatus(Path pathPattern) throws IOException;

public FileStatus[] golbStatus(Path pathPattern ,PathFileter filter) throws IOException;

不使用通配符通配出来的文件,则用PathFilter对象;

删除文件则用delete方法;

数据流

文件读取

客户端通过调用FIleSystem对象的open()方法来打开希望读取的文件,对于hdfs来说,这个对象是分布式文件系统的一个实例,DistributedFileSystem通过使用RPC来调用namenode,以确定文件的起始位置;
对于每一个块,namenode返回存有该块副本的datanode地址,此外这些datanode根据他们和客户端的距离来排序,并保存相应数据块的一个副本时,该节点将会从本地datanode读取数据;
DistributedFIleSystem类返回一个FSDataInputStream对象给客户端并读取数据,该对象封装着一个DFSInputStream对象,来管理着datanode和namenode的I/O
然后调用read()方法,从六种调用读取datanode;

读取完之后关闭流

文件写入
客户端通过对DIstributedFIleSystem对象调用create()函数来新建文件;namenode执行各种检查确保这个文件是否可以建立;

检查通过则DIstributedFileSystem对象返回i一个FSDataOutputStream对象,由此客户端可以进行写操作,FSDataOutputStream对象中封装了一个DFoutPutstream对象负责处理datanode和namenode之间的通信;

写完关闭流


读取时考虑的是就近原则,读取离操作最近的节点;

写入时考虑负载均衡;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值