Java操作HDFS
Java操作HDFS
准备工作:
Hadoop环境变量配置
jdk环境变量配置
不详细演讲
下面直接演示代码:(如下)
点击查看代码
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Before;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.fs.FileSystem;
import org.junit.Test;
/**
* @ClassName:Java_HDFS
* @Description:TODO
* @author:Li Wei Ning
* @Date:2022/4/16 8:40
*/
public class Java_HDFS {
/**
* 定义文件系统,类变量
*/
FileSystem fs = null;
/**
* 预处理,@Test之前
*/
@Before
public void init(){
try {
fs = FileSystem.get(new URI("hdfs://192.168.47.128:9000"),new Configuration(),"root");
}catch (Exception e){
e.printStackTrace();
}finally {
System.out.println("成功!!!");
}
}
/**
* 打印文件系统
*/
@Test
public void printFs(){
System.out.println(fs);
}
/**
* 创建文件
*/
@Test
public void mkdir(){
try {
boolean ret = fs.mkdirs(new Path("/abc"));
System.out.println(ret);
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 上传文件
*/
public void put(){
try {
fs.copyFromLocalFile(new Path("D:/1.txt"),new Path("/1.txt"));
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 重命名
*/
@Test
public void rename(){
try {
if(fs.exists(new Path("/s1.txt"))){
System.out.println(fs.rename(new Path("s1.txt"),new Path("/s2.txt")));
}
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 下载
*/
public void downLoad(){
try {
InputStream in = fs.open(new Path("/123.txt"));
FileOutputStream out = new FileOutputStream(new File("D:/123.txt"));
IOUtils.copyBytes(in,out,2048,true);
}catch (Exception e){
e.printStackTrace();
}
}
}
W