创建HDFS的FileSystem对象的小心得

FileSystem fs = FiileSystem.get(new URI("hdfs://hadoop1:9000"),new Configuration() );

成都创新互联是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,小程序开发,10年建站对广告制作等多个领域,拥有丰富的网站制作经验。

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

Configuration conf = new Configuration();

conf.addResource(new Path("conf/core-site.xml"));

conf.addResource(new Path("conf/hdfs-site.xml"));

FileSystem fs = FiileSystem.get(conf);

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

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

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


当前标题:创建HDFS的FileSystem对象的小心得
文章URL:http://ybzwz.com/article/piohjj.html