前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop基础教程-第4章 HDFS的Java API(4.5 Java API介绍)

Hadoop基础教程-第4章 HDFS的Java API(4.5 Java API介绍)

作者头像
程裕强
发布2022-05-06 18:36:23
3090
发布2022-05-06 18:36:23
举报

第4章 HDFS的Java API

4.5 Java API介绍

在4.4节我们已经知道了HDFS Java API的Configuration、FileSystem、Path等类,本节将详细介绍HDFS Java API,一下节再演示更多应用。

4.5.1 Java API 官网

Hadoop 2.7.3 Java API官方地址 http://hadoop.apache.org/docs/r2.7.3/api/index.html

这里写图片描述
这里写图片描述

如上图所示,Java API页面分为了三部分,左上角是包(Packages)窗口,左下角是所有类(All Classes是)窗口,右侧是详情窗口。

这里推荐使用“先左下角索引,然后查看右侧详情”的方法,好似查英文词典一样。而左上角的包窗口,使用较少。

左下角窗口列出了所有的Java接口和类,可以直接拖动滑动条查找需要的接口或类。如图所示,比如查找到FileSystem,单击该类,右侧窗口将显示该类的详细信息,包括属性方法等。

这里写图片描述
这里写图片描述

4.5.2 Configuration类

方法

说明

void set(String name, String value)

设置属性,name是属性名,value是属性值

void addResource(String name)

添加一个配置资源

比如

代码语言:javascript
复制
// 1.创建配置器 
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://192.168.80.131:9000");
conf.set("mapred.jop.tracker", "192.168.80.131:9001");
代码语言:javascript
复制
Configuration conf = new Configuration();  
conf.addResource("core-default.xml");  
conf.addResource("core-site.xml"); 

4.5.3 URL与Path

URI:统一资源标志符(Uniform Resource Identifier) URL:统一资源定位符(uniform resource location) URI与URL都是定位资源位置的,就是表示这个资源的位置信息,就像经纬度一样可以表示你在世界的哪个角落。URI是一种宽泛的含义更广的定义,而URL则是URI的一个子集,就是说URL是URI的一部分。

URL位于java.net包中 Path类往往与URL类结合使用,Path类位于org.apache.hadoop.fs包下,命名文件系统中的文件或目录。 路径字符串使用斜杠作为目录分隔符。 如果以斜线开始,路径字符串是绝对的。

方法

说明

Path(String pathString)

通过构造器可以把一个字符串构造成一个路径

4.5.4 FileSystem类

Hadoop是由Java语言编写的,其中Hadoop 2.7系列是JDK1.7编写,我们可以通过Java API调用HDFS的所有交互操作接口。其中最常用的类是FileSystem类,包含了hdfs dfs相关操作的实现。

如上图可以看到FileSystem类的声明,

代码语言:javascript
复制
public abstract class FileSystem
extends Configured
implements Closeable

由此可知:

  • FileSystem类位于org.apache.hadoop.fs包中,是一个抽象类,其次父类是Configured,实现了 Closeable接口。
  • Closeable接口是可以关闭的数据源或目标。需要实现close 方法,可释放对象保存的资源(如打开文件)。
  • 父类Configured有两个方法:
    • void setConf(Configuration conf):设置Configuration
    • Configuration getConf():获取Configuration

除了上面三个方法,FileSystem类常用方法如下表(省略了public)

方法

说明

static FileSystem get(Configuration conf)

静态方法,获取FileSystem实例

static FileSystem get(URI uri, Configuration conf)

静态方法,获取FileSystem实例

static FileSystem get(URI uri, Configuration conf, String user)

静态方法,获取FileSystem实例,多个用户参数

FSDataInputStream open(Path f)

在Path位置打开一个文件输入流

void copyFromLocalFile(Path src, Path dst)

将本地文件拷贝到文件系统

void copyToLocalFile(Path src, Path dst)

将文件系统上的src文件复制到本地dst

boolean exists(Path f)

检查文件或目录是否存在

boolean mkdirs(Path f)

新建所有目录(包括父目录), f是完整的目录路径

abstract boolean mkdirs(Path f, FsPermission permission)

在文件系统上创建指定f文件,包括上级目录。

FSOutputStream create(Path f)

创建指定path对象的一个文件,返回一个用于写入数据的输出流

boolean delete(Path f, Boolean recursive)

永久性删除指定的文件或目录,如果f是一个空目录或者文件,那么recursive的值就会被忽略。只有recursive=true时,一个非空目录及其内容才会被删除。

其中,create()方法有多个重载版本,允许我们指定是否强制覆盖已有的文件、文件备份数量、写入文件缓冲区大小、文件块大小以及文件权限。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第4章 HDFS的Java API
    • 4.5 Java API介绍
      • 4.5.1 Java API 官网
      • 4.5.2 Configuration类
      • 4.5.3 URL与Path
      • 4.5.4 FileSystem类
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档