`
weir2009
  • 浏览: 265745 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

hadoop2.x HDFS javaAPI

 
阅读更多

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());

      }

 

2
0
分享到:
评论

相关推荐

    02--HDFS Java API操作.docx

    HDFS Java API 是 Hadoop 中的一部分,提供了一个 Java 编程接口来访问和操作 HDFS 中的文件和目录。该 API 提供了多种方法来操作文件和目录,包括创建、删除、读取和写入文件,列出目录中的文件和子目录等。 二、...

    java操作Hadoop源码之HDFS Java API操作-创建目录

    以上就是使用Java API操作Hadoop HDFS创建目录的完整过程。在实际应用中,你可能需要处理异常,优化错误处理,并根据具体需求进行更复杂的操作,比如读写文件、检查文件是否存在等。通过熟练掌握HDFS的Java API,你...

    java操作Hadoop源码之HDFS Java API操作-上传文件

    在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...

    hdfs-java-api

    HDFS Java API 详解 HDFS(Hadoop Distributed File System)是 Hadoop 项目中的一部分,是一个分布式文件系统。HDFS Java API 是一组 Java 类库,提供了一组接口来操作 HDFS。下面我们将对 HDFS Java API 进行详细...

    Hadoop 2.x与3.x 22点比较,Hadoop 3.x比2.x的改进

    2. 支持的最低Java版本:Hadoop 2.x要求Java的最低版本为Java 7,而Hadoop 3.x则要求Java 8。Java 8具有更高的性能和改进的功能,如Lambda表达式,这可能会在Hadoop 3.x上得到更好的利用。 3. 容错机制:Hadoop 2.x...

    hdfsFile.zip, windows下调试hadoop,.hdfs的2个文件hadoop.dll,winutils.exe

    在Windows环境下调试Hadoop,尤其是涉及HDFS(Hadoop Distributed File System)的操作时,经常会遇到需要配置和使用`winutils.exe`和`hadoop.dll`的情况。这两个文件是Apache Hadoop在Windows操作系统上的关键组件,...

    hadoop-hdfs-2.7.3-API文档-中英对照版.zip

    标签:apache、hdfs、hadoop、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...

    hadoop-3.1.4.tar.zip

    2. **文档**:包含用户指南、开发者文档和API参考,帮助用户了解如何配置、使用和开发Hadoop应用。 3. **bin目录**:包含了可执行的脚本,如启动和停止Hadoop服务的命令,以及用于交互式操作HDFS的工具,如`hadoop ...

    HDFSJavaAPI.tar.gz_HDFS JAVA API_hdfs

    HDFS Java API是Hadoop提供的一套接口,允许开发者通过编写Java代码来与HDFS进行交互。以下是一些关键的HDFS Java API知识点: 1. **初始化HDFS客户端**:使用`Configuration`类配置HDFS连接参数,如NameNode地址。...

    spark-3.1.3-bin-hadoop3.2.tgz

    5. 集成与兼容性:预编译的Hadoop 3.2版本意味着Spark 3.1.3可以更好地与Hadoop生态系统中的其他组件(如HDFS、YARN)协同工作,提供更广泛的数据源支持。 6. 开发者工具:Spark提供了一个强大的交互式命令行界面...

    spark-2.3.4-bin-hadoop2.7.tgz

    在安装"spark-2.3.4-bin-hadoop2.7.tgz"之前,确保你的系统已经安装了Java运行环境(JRE)和Python(通常建议使用Python 2.7或3.5+)。然后,你可以按照以下步骤来解压和配置Spark: 1. 下载压缩包并解压到一个合适...

    spark-3.1.2-bin-hadoop3.2.tgz

    2. **Spark SQL**:用于结构化数据处理,支持SQL查询和DataFrame API。 3. **Spark Streaming**:处理实时数据流,通过微批处理实现低延迟的数据处理。 4. **MLlib**:机器学习库,包含多种算法和实用工具。 5. **...

    hadoop-hdfs-2.6.5-API文档-中文版.zip

    标签:apache、hdfs、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    spark-3.2.1-bin-hadoop2.7.tgz

    2. Spark SQL:提供了SQL接口和DataFrame/Dataset API,使得开发人员可以方便地进行结构化和半结构化数据处理。 3. Spark Streaming:支持实时流数据处理,利用微批处理实现低延迟的数据处理。 4. MLlib:机器学习库...

    hadoop2.6 hadoop.dll+winutils.exe

    `hadoop.dll`确保Hadoop可以在Windows环境下正常工作,弥补了Linux系统调用与Windows API之间的差异。 `winutils.exe` 是Hadoop在Windows上的实用工具程序,类似于Linux环境下的`hadoop`命令行工具。它提供了许多...

    Hadoop3.1.3.rar

    Hadoop 3.1.3是Hadoop发展的一个重要里程碑,它在3.x系列中引入了多项改进和优化,提高了性能、稳定性和可扩展性。 1. **Hadoop架构**:Hadoop由两个主要部分组成:Hadoop Distributed File System (HDFS) 和 ...

    ecplise远程连接hadoop--hdfs java api操作文件.pdf

    在Eclipse中远程连接到Hadoop集群,并通过HDFS的Java API操作文件是一套涉及多个步骤的技术流程,这套流程主要涉及到分布式计算和文件系统操作的知识。首先,我们来梳理一下整个过程中的关键知识点。 第一步:启动...

    hadoop-hdfs-2.7.3-API文档-中文版.zip

    标签:apache、hdfs、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    Hadoop3.1.x_Windows环境整合依赖.rar

    在Hadoop环境中进行数据操作,通常会使用Hadoop的命令行工具,例如`hadoop fs`命令用于与HDFS交互,或者使用Hadoop的MapReduce API开发分布式应用。对于初学者,理解Hadoop的输入输出格式、Mapper和Reducer的概念...

    hadoop3.x的Windows依赖.rar

    2. **IDEA集成**:IntelliJ IDEA(简称IDEA)是流行的Java开发IDE,支持Maven项目的创建和管理。在IDEA中创建一个Maven工程,然后将压缩包中的`pom.xml`文件添加到工程中,通过IDEA的界面可以方便地管理依赖、运行和...

Global site tag (gtag.js) - Google Analytics