当前位置:   article > 正文

《Hadoop权威指南》笔记——第3章 hadoop文件系统

hdfs 将drw-r--r--改为-rw-r--r--

文件读取流程

11332520-b2d55c023a6682ba.png
文件读取

文件写入

11332520-7f7e3734239e425b.png
写入文件

注:不同于读取是多节点和 客户端并发,写入是管线化的,单节点和 客户端交互

一致模型

hsync 方法同步刷新缓存,让内容对另外线程可见

har 归档结构

11332520-e155c5ec358190ff.png
归档

har命令说明

  1. 参数“-p”为src path的前缀
  2. 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文件
  1. hadoop fs -ls har:user/heipark/20120108_15.har/
  2. - 输出如下:
  3. drw-r--r-- - hdfs hadoop 0 2012-01-17 16:30 /user/heipark/20120108_15.har/2025
  4. drw-r--r-- - hdfs hadoop 0 2012-01-17 16:30 /user/heipark/20120108_15.har/2029
  5. - 使用hdfs文件系统查看har文件
  6. hadoop fs -ls /user/yue.zhang/20120108_15.har/
  7. - 输出如下:
  8. -rw-r--r-- 2 hdfs hadoop 0 2012-01-17 16:30 /user/heipark/20120108_15.har/_SUCCESS
  9. -rw-r--r-- 5 hdfs hadoop 2411 2012-01-17 16:30 /user/heipark/20120108_15.har/_index
  10. -rw-r--r-- 5 hdfs hadoop 24 2012-01-17 16:30 /user/heipark/20120108_15.har/_masterindex
  11. -rw-r--r-- 2 hdfs hadoop 191963 2012-01-17 16:30 /user/heipark/20120108_15.har/part-0
Java API (HarFileSystem )
  1. public static void main(String[] args) throws Exception {
  2. Configuration conf = new Configuration();
  3. conf.set("fs.default.name", "hdfs://xxx.xxx.xxx.xxx:9000");
  4. HarFileSystem fs = new HarFileSystem();
  5. fs.initialize(new URI("har:///user/heipark/20120108_15.har"), conf);
  6. FileStatus[] listStatus = fs.listStatus(new Path("sub_dir"));
  7. for (FileStatus fileStatus : listStatus) {
  8. System.out.println(fileStatus.getPath().toString());
  9. }
  10. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/276733
推荐阅读
相关标签
  

闽ICP备14008679号