文件读取流程

文件写入

注:不同于读取是多节点和 客户端并发,写入是管线化的,单节点和 客户端交互
一致模型
hsync 方法同步刷新缓存,让内容对另外线程可见
har 归档结构

har命令说明
- 参数“-p”为src path的前缀
- src可以写多个path
archive -archiveName NAME -p <parent path> <src>* <dest>
生成HAR文件
- 单个src文件夹:
hadoop archive -archiveName 419.har -p /fc/src/20120116/ 419 /user/heipark
- 多个src文件夹
hadoop archive -archiveName combine.har -p /fc/src/20120116/ 419 512 334 /user/heipark
- 不指定src path,直接归档parent path(本例为“/fc/src/20120116/ ”, “/user/heipark ”仍然为输出path),这招是从源码里翻出来的,嘿嘿。
hadoop archive -archiveName combine.har -p /fc/src/20120116/ /user/heipark
- 使用模式匹配的src path,下面的示例归档10、11、12月文件夹的数据。这招也是从源码发出来的。
hadoop archive -archiveName combine.har -p /fc/src/2011 1[0-2] /user/heipark
查看HAR文件
hadoop fs -ls har:////user/heipark/20120108_15.har/
- 输出如下:
drw-r--r-- - hdfs hadoop 0 2012-01-17 16:30 /user/heipark/20120108_15.har/2025
drw-r--r-- - hdfs hadoop 0 2012-01-17 16:30 /user/heipark/20120108_15.har/2029
- 使用hdfs文件系统查看har文件
hadoop fs -ls /user/yue.zhang/20120108_15.har/
- 输出如下:
-rw-r--r-- 2 hdfs hadoop 0 2012-01-17 16:30 /user/heipark/20120108_15.har/_SUCCESS
-rw-r--r-- 5 hdfs hadoop 2411 2012-01-17 16:30 /user/heipark/20120108_15.har/_index
-rw-r--r-- 5 hdfs hadoop 24 2012-01-17 16:30 /user/heipark/20120108_15.har/_masterindex
-rw-r--r-- 2 hdfs hadoop 191963 2012-01-17 16:30 /user/heipark/20120108_15.har/part-0
Java API (HarFileSystem )
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://xxx.xxx.xxx.xxx:9000");
HarFileSystem fs = new HarFileSystem();
fs.initialize(new URI("har:///user/heipark/20120108_15.har"), conf);
FileStatus[] listStatus = fs.listStatus(new Path("sub_dir"));
for (FileStatus fileStatus : listStatus) {
System.out.println(fileStatus.getPath().toString());
}
}
网友评论