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]);
    }

编辑本类的配置
在这里插入图片描述
传递参数,用空格隔开
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wl20040124/article/details/115004101