使用 Java 将文件写入 HDFS 的示例程序
以下是一个使用 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 文件。以下是具体的步骤:
- 将程序保存为名为 FileWrite.java 的文件。
- 打开命令提示符或终端窗口,导航到保存 FileWrite.java 文件的目录。
- 使用以下命令将 FileWrite.java 文件编译为字节码文件:
javac FileWrite.java
- 编译成功后,会生成一个名为 FileWrite.class 的字节码文件。
- 使用以下命令将字节码文件打包为 JAR 文件:
jar -cvf FileWrite.jar FileWrite.class
- 打包成功后,会生成一个名为 FileWrite.jar 的 JAR 文件。
接下来,您可以将 FileWrite.jar 上传到 HDFS 并运行它。假设您已经将 FileWrite.jar 上传到 HDFS 的根目录,可以使用以下命令运行它:
hadoop jar FileWrite.jar org.zkpk.hadoop.hdfs.fs.FileWrite /本地文件路径 /HDFS文件路径
请将 /本地文件路径 替换为要写入 HDFS 的本地文件的路径,并将 /HDFS文件路径 替换为要在 HDFS 上创建的文件的路径。
运行后,程序将尝试将本地文件复制到 HDFS 并输出结果。
原文地址: https://www.cveoy.top/t/topic/byxJ 著作权归作者所有。请勿转载和采集!