在IDEA中对HDFS进行操作 您所在的位置:网站首页 在idea中配置hadoop_home 在IDEA中对HDFS进行操作

在IDEA中对HDFS进行操作

2024-06-06 01:02| 来源: 网络整理| 查看: 265

在IDEA中使用JavaAPI对Hadoop进行操作 简介一、 Java API相关的简单介绍功能描述文件操作:1. 上传文件2. 新建文件3. 下载文件4. 删除文件5. 新建文件并写入数据 二、 操作步骤第一步:Windows环境下Hadoop环境变量配置第二步:Windows和Linux中的JDK版本要一致第三步、创建一个Maven项目1.找到maven安装目录conf文件夹下的settings.xml文件进行修改,在原settings文件中的"mirrors"标签中2. 同一个settings.xml文件中找到下面这行修改即可(这只是为了改变下载路径,自己自定义就行)3.开始创建 三、代码测试四、总结

简介

在本期博客中,笔者会详细的介绍自己通过IDEA开发工具使用Java API接口对Hadoop的HDFS文件系统进行操作,其中包括安装Hadoop在Windows的环境配置,以及通过IDEA创建Maven项目并配置相关文件。

一、 Java API相关的简单介绍 功能描述

通过Java API我们可以在Windows系统中编写Java程序来对HDFS文件系统进行操作。 Hadoop官方的Hadoop API文档,可以访问如下网站,查看各个API的功能: Overview (Apache Hadoop Main 3.3.1 API) 在这里简单介绍一些基础知识。 Hadoop中关于文件操作类基本上全部是在“org.apache.hadoop.fs”包中,这些API能够支持的操作包含:打开文件,读写文件,删除文件等。

在这说明一下文件在 Hadoop 中表示一个Path对象,通常封装一个URI。如HDFS上有个test文件,则URI表示成hdfs://master:9000/test。 首先,介绍Hadoop中的Configuration类,该类的对象封装了客户端或者服务器的配置,每次开始一个对hdfs进行操作的Java程序都要进行的一步,就是创建配置文件。 例:Configuration conf= new Configuration() 接下来是Hadoop中最终面向用户提供的接口类FileSystem,该类的对象是文件系统对象,是个抽象类,只能通过类的 get 方法得到具体的类,可以用该对象的一些方法来对文件进行操作。

例:FileSystem fs = FileSystem.get(conf) 综上所述,我们可以得到一个操作文件的程序框架:

operator() { 得到Configuration对象 得到FileSystem对象 进行文件操作 } 文件操作: 1. 上传文件

通过 “fs.copyFromLocalFile(Path src,Path dst)” 可将本地文件上传到HDFS指定的位置上,其中 src 和 dst 均为文件完整路径,但src是本地文件的路径,dst是在hdfs中存放文件的路径。 例:

fs.copyFromLocalFile(new Path("C:\\app\\2.txt"),new Path("/test3")); 2. 新建文件

通过 “fs.mkdirs(Path f)”可在 HDFS 上创建文件,其中 f为文件的完整路径。 例:

fs.mkdirs(new Path("/test3")); 3. 下载文件

通过“fs.copyToLocalFile(Path src, Path dst)”可在hdfs中下载文件。其中 src 为HDFS上的文件, dst为要下载到本地的文件名. 例:

fs. copyToLocalFile(new Path("/hdfsfile"),new Path("C:\\app")); 4. 删除文件

通过“ fs.delete(Path path, Boolean b)”可删除hdfs文件,其中 path 为要删除的文件。 例:

fs.delete(new Path("/test"),true); 5. 新建文件并写入数据

通过 “FileSystem.create(Path f, Boolean b)” 可在 HDFS 上创建文件,其中 f 为文件的完整路径, b 为判断是否覆盖。 例:

Path dfs = new Path("/test2/hdfsfile"); //创建新文件,如果有则覆盖(true) FSDataOutputStream create = fs.create(dfs, true); //向新创建的文件中写入数据 create.writeBytes("Hello,HDFS!");

注意: 由于hdfs不支持并发写入,所以每次操作完都要关闭文件系统对象。 例: fs.close();

相关



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有