温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

创建HDFS的FileSystem对象的小心得

发布时间:2020-07-06 04:29:54 来源:网络 阅读:2553 作者:alexanda2000 栏目:大数据

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

以这种方式可以创建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的时候指定路径,不管是在程序开发中的调试,还是部署时参数文件相对固定的情况都会更有用


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI