HDFS之JavaAPI上传文件

网友投稿 315 2022-11-17

HDFS之JavaAPI上传文件

方式一:

package com.yqq;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.junit.Test;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException;/** * @Author yqq * @Date 2021/10/30 19:49 * @Version 1.0 */public class HdfsAPIDemo01 { /** * 使用HDFS高级API */ @Test public void copyFromLocalFile() throws URISyntaxException, IOException, InterruptedException { //1.创建文件系统 Configuration configuration =new Configuration(); //2.设置block大小为1M ,上传时候使用,仅对当前方法有效 configuration.set("dfs.blocksize","1048576"); //3.设置副本数 configuration.set("dfs.replication","2"); //4.创建文件系统对象 FileSystem fileSystem = FileSystem.get(new URI("hdfs://node1:9820"), configuration, "root"); //5.上传文件 fileSystem.copyFromLocalFile(new Path("E:\\yqq.txt"),new Path("/api/show/yqq2.txt")); fileSystem.close(); System.out.println("操作完成"); }}

package com.yqq;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.junit.Test;import java.io.FileInputStream;import java.io.FileOutputStream;import java.net.URI;import java.net.URISyntaxException;/** * @Author yqq * @Date 2021/10/30 20:57 * @Version 1.0 */public class HdfsAPIDemo02 { @Test public void uploadFile() throws Exception { //1.创建文件系统 Configuration configuration =new Configuration(); //2.创建文件系统对象 FileSystem fileSystem = FileSystem.get(new URI("hdfs://node1:9820"), configuration, "root"); //3.创建本地输入流对象 FileInputStream fileInputStream = new FileInputStream("E:\\yqq.txt"); //4.创建HDFS文件系统的输出流对象 FSDataOutputStream fsDataOutputStream = fileSystem.create(new Path("/api/show1/hh.txt")); //5.创建字节数组,临时存储中间数据 byte[] data = new byte[1024]; int len = -1; while ((len = fileInputStream.read(data))!=-1) fsDataOutputStream.write(data,0,len); //6.关闭输入流 fileInputStream.close(); //7.刷新输出流中的数据 fsDataOutputStream.flush(); //8.关闭输出流 fsDataOutputStream.close(); //9.断开和HDFS之间的连接 fileSystem.close(); }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java使用sleep方法暂停线程Thread
下一篇:HDFS之JavaAPI文件改名和移动
相关文章

 发表评论

暂时没有评论,来抢沙发吧~