微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java实现hdfs文件读写

Java实现hdfs文件读写

一、创建java maven工程对hdfs文件进行读取

1、新建maven工程

新建maven工程,选择quickstart方式

在这里插入图片描述

填写文件路径名及工程命

在这里插入图片描述

选择maven版本,并选择本机maven中的setting.xml

在这里插入图片描述

新建之后,选择enable自动导入包

在这里插入图片描述

2、修改pom.xml

在这里插入图片描述

 <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>2.6.0</version>
    </dependency>
      <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-common</artifactId>
          <version>2.6.0</version>
      </dependency>
      <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-client</artifactId>
          <version>2.6.0</version>
      </dependency>
  </dependencies>

3、java代码

注意代码这里需要在app的同级目录下新建一个class文件

在这里插入图片描述

package cn.kgc.kb11.test;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.apache.hadoop.yarn.api.records.URL;


import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class TestHDFS {
    FileSystem fs;

    public void initFS(String fsPath, String user) {
        Configuration conf = new Configuration();
        try {
            fs = FileSystem.get(new URI(fsPath), conf, user); 
        } catch (IOException e) {
            e.printstacktrace();
        } catch (InterruptedException e) {
            e.printstacktrace();
        } catch (URISyntaxException e) {
            e.printstacktrace();
        }
    }

    public void createDir(String path) {
        try {
            fs.mkdirs(new Path(path));
        } catch (IOException e) {
            e.printstacktrace();
        }
    }

    public static void main(String[] args) {
        TestHDFS test = new TestHDFS();
        test.initFS(args[0], args[1]);
        test.createDir(args[2]);
    }

二、jar包打包

在这里插入图片描述


选择main class

在这里插入图片描述


显示全类名

在这里插入图片描述


修改java包名

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


jar包拷贝到 虚拟机 186.100的/opt/software 路径下

用一下语句进行文件创建
hadoop jar _20210319hdfs.jar cn.kgc.kb11.test.TestHDFS hdfs://hadoop100:9000 root /testHDFS/java/abc/dfs

在这里插入图片描述


hadoop 50070下文件夹创建成功

三、args[]传参方法

代码中的args String数组
public static void main(String[] args) {
        TestHDFS test = new TestHDFS();
        test.initFS(args[0], args[1]);
        test.createDir(args[2]);
    }

编辑本类的配置

在这里插入图片描述


传递参数,用空格隔开

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐