创建HDFS的文件系统对象的小心得

fs=FiileSystem

文件系统。(新URI (“hdfs://hadoop1:9000”),新配置());

以这种方式可以创建fs对象,但缺点时,使用了空白的配置对象,实际上只授予了fs.default.name这个属性,当访问的hdfs使用了哈(需要多个参数配合,同时指定),或者需要指定其它设置的时候,就会有问题


配置配置=新配置();

相依。addResource(新路径(conf/core-site.xml "));

相依。addResource(新路径(conf/hdfs-site.xml "));

文件系统fs=FiileSystem.get(参看);

以这种方式创建出来的fs具有更大灵活性,以及更加方便,因为它直接读取了xml中的设置,如果有必要,也可以调用之。集方法了设置单个属性。


另外,addResource有几种形式,一种形式是:addResource(字符串文件名),传入参数是文件名。这种形式强烈依赖于CLASS_PATH,程序只会在CLASS_PATH中寻找文件名,如果在文件名中写入路径是无效的。

addResource的另一种形式是addResource(路径文件),这种方式不依赖于CLASS_PATH,可以在新路径的时候指定路径,不管是在程序开发中的调试,还是部署时参数文件相对固定的情况都会更有用


创建HDFS的文件系统对象的小心得