• 获取FileSystem


    	/**
         * 根据配置文件获取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;
        }
    

      

  • 相关阅读:
    利用jQuery Ajax技术实现每隔5秒向某页面传值
    POJ 题目2761 Feed the dogs(主席树||划分树)
    【翻译自mos文章】将expdp的dmp文件从asm磁盘组里边放到本地文件系统里边
    【算法拾遗】最大数和最小数
    WinMain和MFC的差别
    3.1 The Interpolating Polynomial(站点)
    在VS中设置比较和谐的字体和颜色的方法
    获取微信服务器IP地址
    关于bcg库记忆界面的问题及其解决办法
    Objective-C基础笔记(8)Foundation常用类NSString
  • 原文地址:https://www.cnblogs.com/guoziyi/p/10278929.html
Copyright © 2020-2023  润新知