hadoop 的hdfsapi操作
  TEZNKK3IfmPf 2023年11月12日 18 0
  • hdfs 的api 相关操作

一: hdfs api 操作

1.1 读取内容:


package it.xuegod.hadoop.hdfs;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.file.FileSystem;

import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.junit.Test;
import org.apache.hadoop.conf.Configuration;

public class TestHdfs {
	
  

    @Test
	public void readFile() throws IOException {
		URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
    	
		URL url = new URL("hdfs://172.17.100.11:8020/input/file1");
        URLConnection conn = url.openConnection();		
		InputStream is = conn.getInputStream();
		byte[] buf = new byte[is.available()];
		is.read(buf);
		is.close();
		String str = new String(buf);
		System.out.println(str);
		
	}

}

hadoop 的hdfsapi操作

1.2 读取hdfs的数据

package it.xuegod.hadoop.hdfs;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;


/**
 * 
 * 
 * @author zhangyy
 *
 *read file
 *
 */

public class readFileApi {
	
	@Test
	public void readFileByApi() throws IOException {
		
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://172.17.100.11:8020");
		FileSystem fs = FileSystem.get(conf);
		
		Path p = new Path("/input/file1");
		FSDataInputStream fis = fs.open(p);
		byte[] buf = new byte[1024];
		int len = -1;
		
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
	    while((len = fis.read(buf)) != -1) {
	    	baos.write(buf, 0, len);
	    	
	    }
	    fis.close();
	    baos.close();
	
	    System.out.println(new String(baos.toByteArray()));		
	}

}

hadoop 的hdfsapi操作

package it.xuegod.hadoop.hdfs;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Test;


/**
 * 
 * 
 * @author zhangyy
 * 
 * readfile 
 *
 */
public class readFileApi2 {
	
	@Test
	public void readFileByApi() throws IOException {
		
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://172.17.100.11:8020");
		FileSystem fs = FileSystem.get(conf);
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		Path p = new Path("/input/file1");
		FSDataInputStream fis = fs.open(p);
	    IOUtils.copyBytes(fis, baos, 1024);
	    System.out.println(new String(baos.toByteArray()));		
	}

}

hadoop 的hdfsapi操作

1.3: 在hdfs上面的建立文件

package it.xuegod.hadoop.hdfs;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Test;


/**
 * 
 * 
 * @author zhangyy
 * 
 * readfile 
 *
 */
public class mkdirFileApi {
	
	@Test
	public void mkdirFileByApi() throws IOException {
		
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://172.17.100.11:8020");
		FileSystem fs = FileSystem.get(conf);
		fs.mkdirs(new Path("/myhadoop"));
		
	}

}

hadoop 的hdfsapi操作 hadoop 的hdfsapi操作 ###1.4: put写入文件

package it.xuegod.hadoop.hdfs;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Test;


/**
 * 
 * 
 * @author zhangyy
 * 
 * readfile 
 *
 */
public class putFileApi {
	
	@Test
	public void putFileByApi() throws IOException {
		
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://172.17.100.11:8020");
		FileSystem fs = FileSystem.get(conf);
		FSDataOutputStream out = fs.create(new Path("/myhadoop/a.txt"));
		out.write("helloword".getBytes());
		out.close();
	}

}

hadoop 的hdfsapi操作 hadoop 的hdfsapi操作

1.5 删除文件

package it.xuegod.hadoop.hdfs;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Test;


/**
 * 
 * 
 * @author zhangyy
 * 
 * rmfile 
 *
 */
public class rmFileApi {
	
	@Test
	public void rmFileByApi() throws IOException {
		
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://172.17.100.11:8020");
		FileSystem fs = FileSystem.get(conf);
		Path p = new Path("/myhadoop");
	    fs.delete(p,true);
	}

}

hadoop 的hdfsapi操作 hadoop 的hdfsapi操作

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   17   0   0 大数据
  TEZNKK3IfmPf   2023年11月15日   49   0   0 apachehadoopjava
  TEZNKK3IfmPf   2023年11月15日   24   0   0 apachehadoop
  TEZNKK3IfmPf   2024年04月26日   62   0   0 hadoopHive
  TEZNKK3IfmPf   2023年11月15日   22   0   0 System大数据
TEZNKK3IfmPf