FileSystem是一个抽象类:
获取一个抽象类有两种方式:
第一种:看这个抽象类有没有提供什么方法返回他本身
第二种:找子类

具体代码如下;

  1. /**
    * 通过url注册的方式访问hdfs,了解,不会用到
    * @throws Exception
    */
    @Test
    public void getHdfsFile() throws Exception{
    // System.out.println("hello world.");
    //1.注册hdfs的url,让java代码能识别hdfs的url形式
    URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
  2.  
  3. InputStream in = null;
    FileOutputStream out = null;
  4.  
  5. //定义文件访问的url地址
    String url = "hdfs://node01:8020/test/input/install.log";
  6.  
  7. //打开文件输入流
    in = new URL(url).openStream();
    out = new FileOutputStream(new File("D:\\installOut.txt"));
    IOUtils.copy(in,out);
  8.  
  9. IOUtils.closeQuietly(in);
    IOUtils.closeQuietly(out);
    }
  10.  
  11. /**
    * 通过FileSystem获取分布式文件系统的几种方式
    * 方式一
    */
    @Test
    public void getFileSystem1() throws IOException {
    //如果configuration不做任何配置,获取到的是本地文件系统 "file:///"
    Configuration configuration = new Configuration();
  12.  
  13. //覆盖默认配置,得到分布式文件系统
    configuration.set("fs.defaultFS","hdfs://node01:8020");
  14.  
  15. FileSystem fileSystem = FileSystem.get(configuration);
  16.  
  17. System.out.println(fileSystem);
    }
  18.  
  19. /**
    * 方式二
    */
    @Test
    public void getHdfs2() throws URISyntaxException, IOException {
    //使用2个参数
    //参数1是一个URI,定义了使用hdfs://这种方式来访问,就是分布式文件系统
    FileSystem fileSystem = FileSystem.get(new URI("hdfs://node01:8020"), new Configuration());
    System.out.println(fileSystem);
    }
  20.  
  21. /**
    * 方式三
    */
    @Test
    public void getHdfs3() throws URISyntaxException, IOException {
    Configuration configuration = new Configuration();
    configuration.set("fs.defaultFS","hdfs://node01:8020/");
    FileSystem fileSystem = FileSystem.newInstance(configuration);
    System.out.println(fileSystem);
    }
  22.  
  23. /**
    * 方式四
    */
    @Test
    public void getHdfs4() throws URISyntaxException, IOException {
    FileSystem fileSystem = FileSystem.newInstance(new URI("hdfs://node01:8020"), new Configuration());
    System.out.println(fileSystem);
    }

hdfs深入:09、获取分布式文件系统客户端的几种方式的更多相关文章

  1. Axis2开发WebService客户端 的3种方式

    Axis2开发WebService客户端 的3种方式 在dos命令下   wsdl2java        -uri    wsdl的地址(网络上或者本地)   -p  com.whir.ezoffi ...

  2. GRpc添加客户端的四种方式

    随着微服务的发展,相信越来越多的.net人员也开始接触GRpc这门技术,大家生成GRpc客户端的方式也各不相同,今天给大家介绍一下依据Proto文件生成Rpc客户端的四种方式 前提:需要安装4个Nug ...

  3. 获取机器安装.NET版本的几种方式

    当调查应用程序问题时,通常需要先确认目标机器所安装的 .NET Framework 的版本.可以通过如下方式来确认版本号: 通过控制面板安装程序查询 通过查询注册表获取版本信息 通过查看安装目录获取版 ...

  4. Struts2中获取HttpServletRequest,HttpSession等的几种方式

    转自:http://www.kaifajie.cn/struts/8944.html package com.log; import java.io.IOException; import java. ...

  5. Action 中获取表单数据的三种方式

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53138905  冷血之心的博客) Action 中获取表单提交数据 ...

  6. SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件二--获取注入的bean的二种方式

    前言: spring容器以xml的形式注入bean,然后可以在类中获取,获取的形式主要有二种:第一种最简单--采用@Resource 或@Autowired关键字在加载spring文件时将bean注入 ...

  7. XFire构建web service客户端的五种方式

    这里并未涉及到JSR 181 Annotations 的相关应用,具体的三种方式如下 ① 通过WSDL地址来创建动态客户端 ② 通过服务端提供的接口来创建客户端 ③ 使用Ant通过WSDL文件来生成客 ...

  8. Spring Boot获取前端页面参数的几种方式总结

    Spring Boot的一个好处就是通过注解可以轻松获取前端页面的参数,之后可以将参数经过一系列处理传送到后台数据库. 获得的方式有很多种,这里稍微总结一下,大致分为以下几种: 1.指定前端url请求 ...

  9. js中获取页面元素节点的几种方式

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

随机推荐

  1. eclipse下清除项目的svn信息

    点击项目右键->Team->Disconnect 选择第一个即可

  2. 2-11 tensorflow常量变量定义

    D:\Users\ZHONGZHENHUA\Anaconda3\envs\tensorflow\Lib\site-packages\tensorflow https://developer.nvidi ...

  3. Node 基本使用

    node -v:查看node版本 npm -v:查看npm版本 npm install npm -g :升级npm版本 npm install <module_name> [-g]:安装指 ...

  4. Ceph之对象存储网关RADOS Gateway(RGW)

    一.Ceph整体架构及RGW在Ceph中的位置 1.Ceph的整体架构 Ceph是一个统一的.分布式的的存储系统,具有优秀的性能.可靠性和可扩展性.Ceph支持对象存储(RADOSGW).块存储(RB ...

  5. 转-MAC 下安装PHONEGAP开发环境

    来自:http://jinzhe.net/post/8.html 什么是Phonegap呢?Phonegap是一个利用HTML5去开发App的框架.可以为安卓.iOS.WP.黑莓.火狐等移动操作系统. ...

  6. java单元测试注释执行顺序

    JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且是第一个运行 @Before 在测试方法运行之前运行 @Test 测试方法 @Afte ...

  7. 456 132 Pattern 132模式

    给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj.设计一个算法,当 ...

  8. 关于jquery获取单选框value属性值为on的问题

    当取单选框的value值的时候,前提是要有value这个属性,如果没有value属性那么取出来的就会为on 取value值的常见三种方式为 $("input[name='XXX']:chec ...

  9. AlertDialog的实现

    课程Demo 重点解析自定义对话框 public class MainActivity extends AppCompatActivity { private Button bt1; private ...

  10. Android习惯--Activity启动方法

    public void Text extends Activity{ public void static actionStart(Context context, int i, String str ...