码迷,mamicode.com
首页 > 其他好文 > 详细

获取FileSystem

时间:2019-01-16 19:47:48      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:efault   两种方法   div   bing   hdfs   优先   配置   tst   ret   

	/**
     * 根据配置文件获取HDFS操作对象
     * 有两种方法:
     *  1.使用conf直接从本地获取配置文件创建HDFS对象
     *  2.多用于本地没有hadoop系统,但是可以远程访问。使用给定的URI和用户名,访问远程的配置文件,然后创建HDFS对象。
     * @return FileSystem
     */
	public FileSystem getHadoopFileSystem1() {
        FileSystem fs = null;
        Configuration conf = null;
        // 方法一,本地有配置文件,直接获取配置文件(core-site.xml,hdfs-site.xml)
        // 根据配置文件创建HDFS对象
        // 此时必须指定hdsf的访问路径。
        conf = new Configuration();
        // 文件系统为必须设置的内容。其他配置参数可以自行设置,且优先级最高
        conf.set("fs.defaultFS", "hdfs://huabingood01:9000");
        try {
            // 根据配置文件创建HDFS对象
            fs = FileSystem.get(conf);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return fs;
    }
	@Test
	public FileSystem getHadoopFileSystem2() {
		System.out.println("start...");
        FileSystem fs = null;
        Configuration conf = null;
        // 方法二:本地没有hadoop系统,但是可以远程访问。根据给定的URI和用户名,访问hdfs的配置参数
        // 此时的conf不需任何设置,只需读取远程的配置文件即可。
        conf = new Configuration();
        // Hadoop的用户名
        String hdfsUserName = "root";

        URI hdfsUri = null;
        try {
            // HDFS的访问路径
            hdfsUri = new URI("hdfs://master:9000");
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }

        try {
            // 根据远程的NN节点,获取配置信息,创建HDFS对象
            fs = FileSystem.get(hdfsUri,conf,hdfsUserName);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return fs;
    }
    public FileSystem getHadoopFileSystem3() {
        FileSystem fs = null;
        Configuration conf = null;
        // 方法三,反正我们没有搞懂。
        conf  = new Configuration();
        conf.addResource("/opt/huabingood/pseudoDistributeHadoop/hadoop-2.6.0-cdh5.10.0/etc/hadoop/core-site.xml");
        conf.addResource("/opt/huabingood/pseudoDistributeHadoop/hadoop-2.6.0-cdh5.10.0/etc/hadoop/hdfs-site.xml");
        try {
            fs = FileSystem.get(conf);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return fs;
    }

  

获取FileSystem

标签:efault   两种方法   div   bing   hdfs   优先   配置   tst   ret   

原文地址:https://www.cnblogs.com/guoziyi/p/10278929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!