HDFS 的Java API操作

这篇具有很好参考价值的文章主要介绍了HDFS 的Java API操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HDFS 的Java API操作

1、环境搭建

基于Linux的Hadoop(2.7.4)集群
windowsp平台的hadoop
JDK
hadoop和jdk的环境变量
IDEA

2、下载windowsp平台的hadoop,版本要与Linux下的一致

可以使用下载的Linux平台的Hadoop解压。然后在/bin目录下添加Windows相关依赖winutils.exe、winutils.pdb、hadoop.dll
然后在目录hadoopwhadoop-2.7.4etchadoop下更改Java路径

注意:要把C:Program Files 目录该为PROGRA1,因为PROGRA1是 C:Program Files 目录的dos文件名模式下的缩写 。长于8个字符的文件名和文件夹名,都被简化成前面6个有效字符,后面~1,有重名的就 ~2

set JAVA_HOME=C:Program FilesJavajdk-16.0.2
set JAVA_HOME=C:PROGRA~1Javajdk-16.0.2

HDFS 的Java API操作

3、环境变量配置
此电脑右键属性–>高级系统设置–>环境变量
HDFS 的Java API操作
系统环境变量,添加(不能有空格)
HDFS 的Java API操作找到path,编辑
HDFS 的Java API操作测试一下如下成功:
HDFS 的Java API操作

4、打开IDEA创建一个Maven工程
HDFS 的Java API操作下一步,下一步,完成就行

5、在pom.xml配置文件中引入hadoop-common、hadoop-hdfs、haddop-client3中依赖,同时引入junit的单元测试包:

<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
    <artifactId>hdfs-api</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.7.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.7.4</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
        </dependency>
    </dependencies>

</project>

添加相关依赖后,Hadoop相关包就会自动下载:
HDFS 的Java API操作
6、初始化客户端对象

public class HDFS_CRUD {
    FileSystem fs = null;
    @Before
    public void init() throws Exception{
        Configuration conf=new Configuration();


        conf.set( "fs.defaultFS", "hdfs://hadoop01:9000");
        System.setProperty("HADOOP_USER_NAME","root");

        fs = FileSystem.get(conf);

    }

7、上传文件,先准备一个要上传的文件
HDFS 的Java API操作

上传文件:

//	上传文件
    @Test
    public void upload() throws Exception{
        //要上传的文件路径
        Path src=new Path("D:/1.txt");
        //上传到HDFS的目标路径
        Path dst=new Path("/testFile");
        fs.copyFromLocalFile(src,dst);
        fs.close();
    }

执行
HDFS 的Java API操作

执行结果:HDFS 的Java API操作

上传文件成功:
HDFS 的Java API操作打开看一下,是前面我们编辑好的1.txt内容
HDFS 的Java API操作
8、下载文件到本地:

@Test
    public void testDownloadFileToLocal() throws IllegalArgumentException,IOException{
        fs.copyToLocalFile(new Path("/wordcount/input/word.txt"),new Path("E:/hadoopw"));
        fs.close();
    }

HDFS 的Java API操作9、目录操作:

@Test
    public void catalogOperration() throws Exception{
        //创建目录
        fs.mkdirs(new Path("a/b/c"));
        fs.mkdirs(new Path("a2/b2/c2"));
        //重命名文件或文件夹
        fs.rename(new Path("testFile"),new Path("521.txt"));
        //删除文件夹
        fs.delete(new Path("/a2"),true);

    }

HDFS 的Java API操作
10、查看目录中的文件信息:

// 打印指定路径下的文件信息
    @Test
    public void listFile() throws FileNotFoundException, IllegalArgumentException, IOException{
//		true表示是否递归  返回的是迭代器对象
        RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true);

        while(listFiles.hasNext()){
            LocatedFileStatus file = listFiles.next();
            System.out.println("owner:"+file.getOwner());
            System.out.println("filename:"+file.getPath().getName());
            System.out.println("blocksize:"+file.getBlockSize());
            System.out.println("replication:"+file.getReplication());
            System.out.println("permission:"+file.getPermission());
            BlockLocation[] blockLocations = file.getBlockLocations();
            for (BlockLocation b : blockLocations) {
                System.out.println("块的起始偏移量:"+b.getOffset());
                System.out.println("块的长度:"+b.getLength());
                String[] hosts = b.getHosts();
                for (String host : hosts) {
                    System.out.println("块所在的服务器:"+host);
                }
            }

            System.out.println("=========================================");
        }
    }

程序运行结果:
HDFS 的Java API操作文章来源地址https://www.toymoban.com/news/detail-444064.html

到了这里,关于HDFS 的Java API操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop HDFS的API操作

    hadoop的 Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:)。 配置HADOOP_HOME环境变量 配置Path环境变量。 不能放在包含有空格的目录下,cmd 输入hadoop显示此时不应有 hadoop-3.0.0bin。我放在E:Program Files (x86) hadoop-3.0.0bin中,就出现错误 验证Hadoop环境变量是否正常。双击

    2024年02月05日
    浏览(44)
  • 从零开始的Hadoop学习(五)| HDFS概述、shell操作、API操作

    1.1 HDFS 产出背景及定义 1) HDFS 产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切 需要一种系统来管理多台机器上的文件 ,这就是分布式文件管理系统。 HDFS只是分布式文件管理系统

    2024年02月10日
    浏览(56)
  • 单机搭建hadoop环境(包括hdfs、yarn、hive)

    单机可以搭建伪分布式hadoop环境,用来测试和开发使用,hadoop包括: hdfs服务器, yarn服务器,yarn的前提是hdfs服务器, 在前面两个的基础上,课可以搭建hive服务器,不过hive不属于hadoop的必须部分。 过程不要想的太复杂,其实挺简单,这里用最糙最快最直接的方法,在我的单

    2024年02月20日
    浏览(53)
  • Windwos安装Hadoop 并在IDEA中利用Maven实现HDFS API操作

    本次hadoop的安装系统为Windows10、Hadoop版本为3.3.6、Maven版本为3.9.4、Java版本为17.0.2。本教程基于前篇教程Hadoop集群、Java安装均完成后的后续教程,如未完成安装请查看前置教程。Hadoop、java安装 ############################################################################################# 此外,大数

    2024年01月18日
    浏览(39)
  • 头歌大数据作业二:搭建Hadoop环境及HDFS

    课外作业二:搭建Hadoop环境及HDFS 作业详情 内容 阿里云-云起实验室-《搭建Hadoop环境》-Hadoop-2.10.1伪分布式: 1.截图本实验ECS的公网IP地址,并添加彩色框标注,如下图所示: 2.步骤6.启动Hadoop成功之后,截图并添加彩色框标注,如下图所示 3.hdfs 根目录创建文件夹(文件夹命

    2024年02月08日
    浏览(55)
  • hadoop调用HDFS java api实现在HDFS上创建文件夹

    目录 一、前期准备 1、Hadoop集群已配置完毕 2、Linux系统安装jdk 3、安装并破解IntelliJ IDEA 二、通过JAVA API操纵HDFS 1.在IDEA中创建项目  2.在hdfs项目的src-main-java路径下创建一个包,然后在包下创建一个java类实现hdfs的文件操作  3.java类的代码 4.对JAVA程序传入参数后运行程序  5

    2024年02月08日
    浏览(74)
  • 使用Hadoop 的 Java API 操纵 HDFS 文件系统

    使用 Java 操作 HDFS 文件系统可以使用其对应的Java API,即对应三个 jar 依赖包: hadoop-common.jar (该文件在 hadoop-2.10.1.tar.gz 压缩包中的 sharehadoopcommon 目录下) hadoop-hdfs.jar (该文件在 hadoop-2.10.1.tar.gz 压缩包中的 sharehadoophdfs 目录下) hadoop-client.jar (该文件在 hadoop-2.10.1.tar.gz 压缩包

    2023年04月25日
    浏览(40)
  • 头歌Hadoop 开发环境搭建及HDFS初体验(第2关:配置开发环境 - Hadoop安装与伪分布式集群搭建)

    注: 1 头歌《Hadoop 开发环境搭建及HDFS初体验》三关在一个实验环境下,需要三关从前往后按顺序评测,跳关或者实验环境结束后重新打开 不能单独评测通过 2 复制粘贴请用右键粘贴,CTRL+C/V不管用哦~ 第1关:配置开发环境 - JavaJDK的配置: 解压: 配置环境变量: 细节: vi

    2024年02月08日
    浏览(213)
  • 基于Linux环境下搭建Hadoop3.3.5伪分布式集群

    目录 架构设计: 一、下载hadoop安装包 二、解压及构建软连接 三、 修改配置文件 1. 配置workers文件   //hadoop02中叫slaves 2. 修改hadoop-env.sh          3. 修改core-site.xml     4. 修改hdfs-site.xml 5. 配置:mapred-site.xml文件   6. 配置yarn-site.xml文件  四、根据hdfs-site.xml的配置项,准备数

    2024年01月19日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包