HDFS是Hadoop应用程序使用的主要分布式存储。HDFS集群主要由管理文件系统元数据的NameNode和存储实际数据的DataNodes组成,HDFS架构图描述了NameNode,DataNode和客户端之间的基本交互。客户端联系NameNode进行文件元数据或文件修改,并直接使用DataNodes执行实际的文件I / O。

  Hadoop支持shell命令直接与HDFS进行交互,同时也支持JAVA API对HDFS的操作,例如,文件的创建、删除、上传、下载、重命名等。

  HDFS中的文件操作主要涉及以下几个类:

    Configuration:提供对配置参数的访问

    FileSystem:文件系统对象

    Path:在FileSystem中命名文件或目录。 路径字符串使用斜杠作为目录分隔符。 如果以斜线开始,路径字符串是绝对的

    FSDataInputStream和FSDataOutputStream:这两个类分别是HDFS中的输入和输出流

 

下面是JAVA API对HDFS的操作过程:

1.项目结构

HDFS Java API的使用举例

 

 

2.pom.xml配置

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3     <modelVersion>4.0.0</modelVersion>
 4 
 5     <groupId>com.zjl</groupId>
 6     <artifactId>myhadoop</artifactId>
 7     <version>0.0.1-SNAPSHOT</version>
 8     <packaging>jar</packaging>
 9 
10     <name>myhadoop</name>
11     <url>http://maven.apache.org</url>
12 
13     <properties>
14         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15         <hadoop.version>2.5.0</hadoop.version>
16     </properties>
17 
18     <dependencies>
19         <dependency>
20             <groupId>org.apache.hadoop</groupId>
21             <artifactId>hadoop-client</artifactId>
22             <version>${hadoop.version}</version>
23         </dependency>
24         <dependency>
25             <groupId>junit</groupId>
26             <artifactId>junit</artifactId>
27             <version>3.8.1</version>
28         </dependency>
29     </dependencies>
30 </project>
View Code

相关文章: