zoukankan      html  css  js  c++  java
  • 获取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;
        }
    

      

  • 相关阅读:
    Element filtername is not allowed here-web.xml version="3.0"-intellij idea
    探究JavaScript闭包
    telnet的安装和使用
    Oracle数据库常用的sql语句
    centos6上安装jenkins
    idea的maven项目不知道为啥下载不下来jar包,看本地仓库只是下载了一下xml文件,没有jar包问题
    Oracle数据库使用mybatis的时候,实体类日期为Date类型,mybatis里面定义的是Date类型,插入的时候,时分秒全部是12:00:00问题
    maven打包某个分支的包
    maven打包到私服,打的是war包,好郁闷
    多线程初学习
  • 原文地址:https://www.cnblogs.com/guoziyi/p/10278929.html
Copyright © 2011-2022 走看看