以下是一个使用 Java 将文件写入 HDFS 的示例程序:

package org.zkpk.hadoop.hdfs.fs;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.zookeeper.common.IOUtils;

public class FileWrite {
    public static void main(String[] args) {
        BufferedInputStream in = null;
        FileSystem fs =null;
        FSDataOutputStream out =null;
        try {
            in = new BufferedInputStream(new FileInputStream(args[0]));
            Configuration conf=new Configuration();
                      //FileSystem 
            fs =FileSystem.get(URI.create(args[1]),conf);
                        out=fs.create(new Path(args[1]));
            IOUtils.copyBytes(in, out, 4096, false);
             } catch (FileNotFoundException e) {
                e.printStackTrace();
             }catch(IOException e){
                e.printStackTrace();
             }finally{
                IOUtils.closeStream(out);
                IOUtils.closeStream(in);
                if(fs != null) {
                    try {
                                          fs.close();
                              }catch (IOException e) {
                                        e.printStackTrace();
                                 }
                      }
                  }
        }
}

打包并运行程序

要将此程序打包为 Java JAR 文件,您需要使用 Java 编译器将其编译为字节码文件,然后使用 JAR 命令将字节码文件打包为 JAR 文件。以下是具体的步骤:

  1. 将程序保存为名为 FileWrite.java 的文件。
  2. 打开命令提示符或终端窗口,导航到保存 FileWrite.java 文件的目录。
  3. 使用以下命令将 FileWrite.java 文件编译为字节码文件:
javac FileWrite.java
  1. 编译成功后,会生成一个名为 FileWrite.class 的字节码文件。
  2. 使用以下命令将字节码文件打包为 JAR 文件:
jar -cvf FileWrite.jar FileWrite.class
  1. 打包成功后,会生成一个名为 FileWrite.jar 的 JAR 文件。

接下来,您可以将 FileWrite.jar 上传到 HDFS 并运行它。假设您已经将 FileWrite.jar 上传到 HDFS 的根目录,可以使用以下命令运行它:

hadoop jar FileWrite.jar org.zkpk.hadoop.hdfs.fs.FileWrite /本地文件路径 /HDFS文件路径

请将 /本地文件路径 替换为要写入 HDFS 的本地文件的路径,并将 /HDFS文件路径 替换为要在 HDFS 上创建的文件的路径。

运行后,程序将尝试将本地文件复制到 HDFS 并输出结果。

使用 Java 将文件写入 HDFS 的示例程序

原文地址: https://www.cveoy.top/t/topic/byxJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录