hadoop中URI理解


1)在編寫MR程序的時候經常會有如下代碼:

String uri=“。。。。”;

Configuration conf=new Configuration();

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

URI究竟是什么東西?有什么用?
2)URI稱為統一資源標示符,在Hadoop中使用URI路徑作為參數,其格式是:scheme://authority/path。對於HDFS文件系統,scheme(對應協議名)就是hdfs(對於本地文件系統就是file),authority就是namenode主機名,path就是文件(目錄)的路徑構成的字符串。一個HDFS目錄或者文件,比如/parent/child,可以表示為hdfs://namenode:namenodeport/parent/child,一直namenode名稱為Master,對應HDFS的端口號是9000的話,實際上就是hdfs://Master:9000/parent/child。當然,scheme和authority參數是可選的,也就是可以省略,如果未加指定就會使用配置中指定的默認值(也就是core-site.xml中配置項fs.default.name的值),如果fs.default.name=hdfs://Master:9000,那么僅僅使用/parent/child就可以表示hdfs://Master:9000/parent/child。這樣可以解釋conf和URI一起使用,conf是配置文件(conf目錄下的配置文件們)相關的對象,uri省略了scheme和authority的部分,雖然不完整,但是與conf配置使用,讀取了core-site.xml中的默認scheme值,組成了完整的URI對象,然后創建FileSystem對象。

 參考:

https://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

http://www.cnblogs.com/linjiqin/p/3147837.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM