hadoop中的Configuration对象和FilSystem是什么有什么用?

问题:
Configuration conf=new Configuration();
FileSystem fs=FileSystem.get(URI.create(“/user/algo/wy/tmp”),conf);
这是打开hdfs系统上的文件的常用写法。但是我不明白:
conf感觉就是一个空的配置文件,一个空的配置文件相当于里面没有携带任何有用的信息,为什么FileSystem的get函数还一定要加入conf参数呢,保留这个conf参数的作用是什么?

答案:
Configuration conf=new Configuration();
创建一个Configuration对象时,其构造方法会默认加载hadoop中的两个配置文件,分别是hdfs-site.xml以及core-site.xml,这两个文件中会有访问hdfs所需的参数值,主要是fs.default.name,指定了hdfs的地址,有了这个地址客户端就可以通过这个地址访问hdfs了。即可理解为configuration就是hadoop中的配置信息。

FileSystem fs=FileSystem.get(URI.create(“/user/algo/wy/tmp”),conf);
URI.create是解析参数的值(就是给的地址)

以下是FileSystem的方法:
get(Configuration conf) 根据conf获取具体的文件系统对象
get(URI uri, Configuration conf) 基于uri和conf创建文件系统对象
get(URI uri, Configuration conf, String user) 基于uri,conf和user获取文件系统
getLocal(Configuration conf) 获取本地文件系统
newInstance(Configuration conf) 返回唯一的文件系统对象,该方法总是返回新的对象
newInstance(URI uri, Configuration conf) 基于uri返回新的文件系统对象
newInstance(URI uri, Configuration conf, String user) 基于uri,conf和user获取文件系统
newInstanceLocal(Configuration conf) 返回新的本地文件系统对象

你可能感兴趣的:(大数据)