JAVA API操作

由于Hadoop是使用Java语言编写的,因此可以使用Java API操作Hadoop文件系统。

HDFS Shell本质上就是对Java API的应用,通过编程的形式操作HDFS,其核心是使用HDFS提供的Java API构造一个访问客户端对象,然后通过客户端对象对HDFS上的文件进行操作(增、删、改、查)。

一、HDFS JAVA API介绍

Hadoop整合了众多文件系统。HDFS只是这个文件系统的一个实例。HDFS Java API的****核心包****如下所示。

• org.Apache.hadoop.****fs********.********FileSystem****:它是通用文件系统的抽象基类,可以被分布式文件系统继承,它具有许多实现类,如LocalFileSystem、DistributedFileSystem、FtpFileSystem等。

• org.Apache.hadoop.****fs********.********FileSta********t********us****:它用于向客户端展示系统中文件和目录的元数据,具体包含文件大小、块大小、制本信息、修改时间等。

• org. Apache.hadoop. *fs.* ****FSDatalnputStream****:文件输入流,用于读取 Hadgp 文件。

• org. Apache.hadoop.****fs. FSData********O********utputStream****:文件输出流,用于写 Hadoop 文件。

• org. Apache. Hadoop. ****conf. Configuration****:访问配置项,默认配置参数在 core-site.xml中,用户可以添加相应的配置参数。

・org. Apache. hadoop. ****fs. Path****:用于表示Hadoop文件系统中的一个文件或者一个目录的路径。

在Java中操作HDFS,首先需要创建一个客户端实例,主要涉及以下类:

・Configuration:该类的对象封装了客户端或者服务器的配置,每个配置选项是一个键值对,通常情况下,Configuration实例会自动加载HDFS的配置文件core-site.xml,从中获取Hadoop集群的配置信息。

・FileSystem:该类的对象是一个文件系统对象,通过该对象的一些方法可以对文件

进行操作,常用方法如表所示。

表 FileSystem常用方法

copyFromLocalFile(Path src,Path dst) 从本地磁盘复制文件到HDFS
copyToLocalFile(Path src,Path dst) 从HDFS复制文件到本地磁盘
mkdirs(Path f) 建立子目录
rename(Path src,Path dst) 重命名文件或文件夹
delete(Path f) 删除指定文件

学习JAVA API的网址:

http://hadoop.apache.org/docs/stable/api/index.html

二、 HDFS的API操作案例----使用JAVA API操作HDFS(实现增删改)

1. 配置windows下hadoop环境(已经在安装环境中配置完成)
2. 搭建项目环境

打开Eclipse选择File-New-Maven-Project创建Maven工程,选择“Create a simple Project”,点击Next,进入如下界面:创建一个项目名为“HadoopDemo”,包名为“com.njci”的Maven项目。
创建好项目后,会发现有一个pom.xml,它是对项目进行管理的核心配置文件。本文件中引入hadoop-common、hadoop-hdfs、hadoop-client以及单元测试junit的依赖。注意格式。

在pom.xml中添加依赖后,hadoop相关的jar包会自动下载。

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.njitt</groupId>
	<artifactId>HadoopDemo2</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>HadoopDemo2</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值