Hadoop Java api 操作 hdfs(二)
作者:Emperor_LawD
- 2022 年 5 月 09 日
本文字数:1456 字
阅读完需:约 5 分钟
连接 hdfs
新建 java 文件
在
HDFSApp
文件中写入以下代码,在 hadoop 中创建文件夹
package com.syh.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.net.URI;
public class HDFSApp {
Configuration configuration = null;
FileSystem fileSystem = null;
// 配置路径(ip地址)
public static final String HDFS_PATH = "hdfs://192.168.207.128:8020";
// 测试(新建文件夹)
@Test
public void mkdir() throws Exception {
fileSystem.mkdirs(new Path("/emperorlawd/test"));
}
// Java 连接hdfs 需要先建立一个连接
// 测试方法执行之前要执行的操作
@Before
public void setUp() throws Exception {
System.out.println("开始建立与HDFS的连接");
configuration = new Configuration();
fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, "hadoop");
}
// 测试之后要执行的代码
@After
public void tearDown() {
configuration = null;
fileSystem = null;
System.out.println("关闭与HDFS的连接");
}
}
复制代码
运行成功的效果
创建文件
在
HDFSApp
文件中加入以下代码
// 创建文件
@Test
public void create() throws Exception {
Path path = new Path("/emperorlawd/test/hello.txt");
FSDataOutputStream outputStream = fileSystem.create(path);
outputStream.write("hello hadoop".getBytes());
outputStream.flush();
outputStream.close();
}
复制代码
运行
create()
重命名文件
在
HDFSApp
文件中加入以下代码
// 重命名文件
@Test
public void rename() throws Exception {
Path oldPath = new Path("/emperorlawd/test/hello.txt");
Path newPath = new Path("/emperorlawd/test/rehello.txt");
fileSystem.rename(oldPath, newPath);
}
复制代码
运行
rename()
查看文件
在
HDFSApp
文件中加入以下代码
// 查看文件
@Test
public void cat() throws Exception {
Path path = new Path("/emperorlawd/test/rehello.txt");
FSDataInputStream inputStream = fileSystem.open(path);
IOUtils.copyBytes(inputStream, System.out, 1024);
inputStream.close();
}
复制代码
运行
cat()
上传文件
在
HDFSApp
文件中加入以下代码
// 上传文件
@Test
public void upload() throws Exception {
Path localPath = new Path("cifar-10-python.tar.gz");
Path hdfsPath = new Path("/");
fileSystem.copyFromLocalFile(localPath, hdfsPath);
}
复制代码
运行
upload()
下载文件
在
HDFSApp
文件中加入以下代码
// 下载文件
@Test
public void download() throws Exception {
Path hdfsPath = new Path("/hadoop-2.6.0-cdh5.7.0.tar.gz");
Path localPath = new Path("./down/hadoop-2.6.0-cdh5.7.0.tar.gz");
fileSystem.copyToLocalFile(false, hdfsPath, localPath, true);
}
复制代码
运行
download()
划线
评论
复制
发布于: 刚刚阅读数: 6
版权声明: 本文为 InfoQ 作者【Emperor_LawD】的原创文章。
原文链接:【http://xie.infoq.cn/article/e01a4cacb55858e6c60d00760】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
Emperor_LawD
关注
愿能如萤火一般,可以在黑夜里发一点光。 2021.05.19 加入
还未添加个人简介
评论