天天看點

Hadoop FSDataInputStream 流定位的例子

不單獨說明了,代碼中的注釋很詳細了

/** 

 * 

 * Description: 這個例子用于展示Hadoop的FSDataInputStream的流定位能力 

 * @author charles.wang 

 * @created Mar 13, 2012 9:21:34 AM 

 *  

 */ 

public class FileSystemCatSeekable { 

    public static void main(String [] args) throws Exception{ 

        //擷取指令行參數 

        String uri = args[0]; 

        Configuration conf = new Configuration(); 

        conf.set("hadoop.job.ugi", "root,root123"); 

        //打開一個Hadoop FileSystem ,用FileSystem的靜态方法擷取之 

        FileSystem fs = FileSystem.get(URI.create(uri) ,conf); 

        //打開一個InputStream 對象 

        FSDataInputStream in = null; 

        try{ 

        //讓其指向FileSystem中由指令行提供的uri對應的路徑 

        in =fs.open(new Path (uri)); 

        //第一次讀取 

        IOUtils.copyBytes(in, System.out, 20, false); 

        //讓讀頭重新定位到檔案起始地方 

        in.seek(0); 

        //第二次讀取 

        }catch (Exception ex){ 

            ex.printStackTrace(); 

        }finally{ 

            in.close(); 

        } 

    } 

本文轉自 charles_wang888 51CTO部落格,原文連結:http://blog.51cto.com/supercharles888/840725,如需轉載請自行聯系原作者

繼續閱讀