HDFS javaAPI
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://h6:9000");
FileSystem fileSystem = FileSystem.get(conf);
1.创建文件夹:
判断是否存在
不存在再创建
if (!fileSystem.exists(new Path("/weir01"))) {
fileSystem.mkdirs(new Path("/weir01"));
}
2.创建文件:
in - InputStream to read from 原文件路径
out - OutputStream to write to hdfs 目录
the size of the buffer 缓冲大小
close - whether or not close the InputStream and OutputStream at the end. The streams are closed in the finally clause. 是否关闭流
FSDataOutputStream out =fileSystem.create(new Path("/d1"));
FileInputStream in = new FileInputStream("f:/hadoop.zip");
IOUtils.copyBytes(in, out, 1024, true);
3上传本地文件
delSrc - whether to delete the src是否删除源文件
overwrite - whether to overwrite an existing file是否覆盖已存在的文件
srcs - array of paths which are source 可以上传多个文件数组方式
dst – path 目标路径
fileSystem.copyFromLocalFile(src, dst);
fileSystem.copyFromLocalFile(delSrc, src, dst);
fileSystem.copyFromLocalFile(delSrc, overwrite, src, dst);
fileSystem.copyFromLocalFile(delSrc, overwrite, srcs, dst);
4 重命名HDFS文件
fileSystem.rename(src, dst);
5.删除文件
True 表示递归删除
fileSystem.delete(new Path("/d1"), true);
6.查看目录及文件信息
FileStatus[] fs = fileSystem.listStatus(new Path("/"));
for (FileStatus f : fs) {
String dir = f.isDirectory() ? "目录":"文件";
String name = f.getPath().getName();
String path = f.getPath().toString();
System.out.println(dir+"----"+name+" path:"+path);
System.out.println(f.getAccessTime());
System.out.println(f.getBlockSize());
System.out.println(f.getGroup());
System.out.println(f.getLen());
System.out.println(f.getModificationTime());
System.out.println(f.getOwner());
System.out.println(f.getPermission());
System.out.println(f.getReplication());
System.out.println(f.getSymlink());
}
7.查找某个文件在HDFS集群的位置
FileStatus fs = fileSystem.getFileStatus(new Path("/data"));
BlockLocation[] bls=fileSystem.getFileBlockLocations(fs, 0, fs.getLen());
for (int i = 0,h=bls.length; i < h; i++) {
String[] hosts= bls[i].getHosts();
System.out.println("block_"+i+"_location: "+hosts[0]);
}
8.获取HDFS集群上所有节点名称信息
DistributedFileSystem hdfs = (DistributedFileSystem) fileSystem;
DatanodeInfo[] dns=hdfs.getDataNodeStats();
for (int i = 0,h=dns.length; i < h; i++) {
System.out.println("datanode_"+i+"_name: "+dns[i].getHostName());
}
相关推荐
HDFS Java API 是 Hadoop 中的一部分,提供了一个 Java 编程接口来访问和操作 HDFS 中的文件和目录。该 API 提供了多种方法来操作文件和目录,包括创建、删除、读取和写入文件,列出目录中的文件和子目录等。 二、...
以上就是使用Java API操作Hadoop HDFS创建目录的完整过程。在实际应用中,你可能需要处理异常,优化错误处理,并根据具体需求进行更复杂的操作,比如读写文件、检查文件是否存在等。通过熟练掌握HDFS的Java API,你...
在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...
HDFS Java API 详解 HDFS(Hadoop Distributed File System)是 Hadoop 项目中的一部分,是一个分布式文件系统。HDFS Java API 是一组 Java 类库,提供了一组接口来操作 HDFS。下面我们将对 HDFS Java API 进行详细...
2. 支持的最低Java版本:Hadoop 2.x要求Java的最低版本为Java 7,而Hadoop 3.x则要求Java 8。Java 8具有更高的性能和改进的功能,如Lambda表达式,这可能会在Hadoop 3.x上得到更好的利用。 3. 容错机制:Hadoop 2.x...
在Windows环境下调试Hadoop,尤其是涉及HDFS(Hadoop Distributed File System)的操作时,经常会遇到需要配置和使用`winutils.exe`和`hadoop.dll`的情况。这两个文件是Apache Hadoop在Windows操作系统上的关键组件,...
标签:apache、hdfs、hadoop、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
2. **文档**:包含用户指南、开发者文档和API参考,帮助用户了解如何配置、使用和开发Hadoop应用。 3. **bin目录**:包含了可执行的脚本,如启动和停止Hadoop服务的命令,以及用于交互式操作HDFS的工具,如`hadoop ...
HDFS Java API是Hadoop提供的一套接口,允许开发者通过编写Java代码来与HDFS进行交互。以下是一些关键的HDFS Java API知识点: 1. **初始化HDFS客户端**:使用`Configuration`类配置HDFS连接参数,如NameNode地址。...
5. 集成与兼容性:预编译的Hadoop 3.2版本意味着Spark 3.1.3可以更好地与Hadoop生态系统中的其他组件(如HDFS、YARN)协同工作,提供更广泛的数据源支持。 6. 开发者工具:Spark提供了一个强大的交互式命令行界面...
在安装"spark-2.3.4-bin-hadoop2.7.tgz"之前,确保你的系统已经安装了Java运行环境(JRE)和Python(通常建议使用Python 2.7或3.5+)。然后,你可以按照以下步骤来解压和配置Spark: 1. 下载压缩包并解压到一个合适...
2. **Spark SQL**:用于结构化数据处理,支持SQL查询和DataFrame API。 3. **Spark Streaming**:处理实时数据流,通过微批处理实现低延迟的数据处理。 4. **MLlib**:机器学习库,包含多种算法和实用工具。 5. **...
标签:apache、hdfs、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
2. Spark SQL:提供了SQL接口和DataFrame/Dataset API,使得开发人员可以方便地进行结构化和半结构化数据处理。 3. Spark Streaming:支持实时流数据处理,利用微批处理实现低延迟的数据处理。 4. MLlib:机器学习库...
`hadoop.dll`确保Hadoop可以在Windows环境下正常工作,弥补了Linux系统调用与Windows API之间的差异。 `winutils.exe` 是Hadoop在Windows上的实用工具程序,类似于Linux环境下的`hadoop`命令行工具。它提供了许多...
Hadoop 3.1.3是Hadoop发展的一个重要里程碑,它在3.x系列中引入了多项改进和优化,提高了性能、稳定性和可扩展性。 1. **Hadoop架构**:Hadoop由两个主要部分组成:Hadoop Distributed File System (HDFS) 和 ...
在Eclipse中远程连接到Hadoop集群,并通过HDFS的Java API操作文件是一套涉及多个步骤的技术流程,这套流程主要涉及到分布式计算和文件系统操作的知识。首先,我们来梳理一下整个过程中的关键知识点。 第一步:启动...
标签:apache、hdfs、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
在Hadoop环境中进行数据操作,通常会使用Hadoop的命令行工具,例如`hadoop fs`命令用于与HDFS交互,或者使用Hadoop的MapReduce API开发分布式应用。对于初学者,理解Hadoop的输入输出格式、Mapper和Reducer的概念...
2. **IDEA集成**:IntelliJ IDEA(简称IDEA)是流行的Java开发IDE,支持Maven项目的创建和管理。在IDEA中创建一个Maven工程,然后将压缩包中的`pom.xml`文件添加到工程中,通过IDEA的界面可以方便地管理依赖、运行和...