分享

通过反编译工具查看hadoop源码及类IOUtils使用示例

阅读本文可以带着下面问题:
1.如何查看编译包的代码?
2.包中代码的使用?

1.下载jd-gui
jd-gui是一个Java反编译工具,可以将Jar包中的class类之间编译回.java文件,
下载地址:
链接: http://pan.baidu.com/s/1eQ1MvV8 密码: lrql

2.通过jd-gui查看源码

(1)找到编译包
2.png



(2)选择包查看源码

查看代码示例:
1.png



IOUtils.copyBytes可以方便地将数据写入到文件,不需要自己去控制缓冲区,也不用自己去循环读取输入源。
  1. import java.io.BufferedInputStream;
  2. import java.io.IOException;
  3. import org.apache.hadoop.conf.Configuration;
  4. import org.apache.hadoop.fs.FSDataOutputStream;
  5. import org.apache.hadoop.fs.FileSystem;
  6. import org.apache.hadoop.fs.Path;
  7. import org.apache.hadoop.io.IOUtils;
  8. public class IOUtilsDemo {
  9.     public static void main(String[] args) throws IOException {
  10.         BufferedInputStream is = new BufferedInputStream(System.in);
  11.         FileSystem fs = FileSystem.get(new Configuration());
  12.         Path outputPath = new Path("hdfs://xxyy:9000" + args[0]);
  13.         FSDataOutputStream os = fs.create(outputPath);
  14.         // 参数说明
  15.         // is - 输入源
  16.         // os - 输出源
  17.         // 4096 - 缓冲区大小
  18.         // true - 是否关闭数据流,如果是false,就在finally里关掉
  19.         //        IOUtils.closeStream(is);
  20.         //        IOUtils.closeStream(os);
  21.         IOUtils.copyBytes(is, os, 4096, true);
  22.         System.out.println("Created file " + outputPath + " of length " +
  23.             fs.getFileStatus(outputPath).getLen() + " bytes.");
  24.     } // END: main
  25. } // END: IOUtilsDemo
复制代码
示例:
[dwapp@dw-dhw3-1 yaoyao.zhangyy]$ ls -lrth a.dat
-rw-rw-r-- 1 dwapp dwapp 485M May 13 15:58 a.dat
[dwapp@dw-dhw3-1 yaoyao.zhangyy]$ cat a.dat | java IOUtilsDemo /group/alidw/dhwdata1/ae/odl/ae01/wps11.dat
Created file hdfs://xxyy:9000/group/alidw/dhwdata1/ae/odl/ae01/wps11.dat of length 508310840 bytes.
[dwapp@dw-dhw3-1 yaoyao.zhangyy]$ hadoop fs -ls /group/alidw/dhwdata1/ae/odl/ae01/wps11.dat
Found 1 items
-rw-r--r--   3 dwapp cug-alidw  508310840 2013-05-13 16:29 /group/alidw/dhwdata1/ae/odl/ae01/wps11.dat

来自群组: Hadoop技术组

已有(1)人评论

跳转到指定楼层
式微 发表于 2015-11-5 18:46:03
楼主,请问这个方式相比maven查看hadoop源码的区别是什么呢?半天都没有把maven的弄好,就想知道这个能不能取代maven。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条