关于是否在intellij idea 的工程下的resources目录下添加core-site.xml 的区别?

hadoop core-site.xml 中通常有核心的配置项,比如:


    
        fs.defaultFS
        hdfs://localhost:9000   
    
    
            hadoop.tmp.dir
            /Users/user1/software_install/hadoop_install/hadoop_tmp_dir
    
    
        ha.zookeeper.quorum
        localhost:2181
    
    
        hive.zookeeper.quorum
        localhost:2181
    



如图,当resources目录下添加了Hadoop core-site.xml 且包含配置项“fs.defaultFS”时,应用代码中不需要显式指定 Hadoop 配置项 “fs.defaultFS”;

resources目录下添加hadoop core-site.xml

但是如果resources目录未添加该配置文件或者不包含该配置项,则必须要在应用代码中显式指定该配置项,否则当使用相对路径访问HDFS文件时:

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
FSDataInputStream in = fs.open(new Path("/user/hive/warehouse/test.db/tbl1/000000_0")
// 完整路径应该为:hdfs://localhost:9000/user/hive/warehouse/test.db/tbl1,其中hdfs://localhost:9000为配置项“fs.defaultFS”的值。

会提示找不到该文件:

java.io.FileNotFoundException: File /user/hive/warehouse/test.db/tbl1 does not exist


你可能感兴趣的:(关于是否在intellij idea 的工程下的resources目录下添加core-site.xml 的区别?)