javaAPI操作hadoop hdfs
时间:2022-07-26
本文章向大家介绍javaAPI操作hadoop hdfs,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
写在之前
在开始操作之前请确保已经正确安装启动hadoop并且能够连接到
依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>3.0.3</version>
</dependency>
</dependencies>
读取文件
public void test1() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.19.4:9000"), conf);
InputStream in = fs.open(new Path("/park/test.txt"));
OutputStream out = new FileOutputStream("test.txt");
IOUtils.copyBytes(in,out,conf);
}
写文件到hdfs
public void test2() throws Exception{
Configuration conf = new Configuration();
//设置副本数
conf.set("dfs.replication","1");
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.19.4:9000"),conf,"root");
ByteArrayInputStream in = new ByteArrayInputStream("helloworld".getBytes());
OutputStream out = fs.create(new Path("/park/hello.txt"));
IOUtils.copyBytes(in,out,conf);
}
删除文件
public void test3() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.19.4:9000"),conf,"root");
fs.delete(new Path("park/hello.txt"),true);
fs.close();
}
创建文件
public void test4() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.19.4:9000"),conf,"root");
fs.mkdirs(new Path("/hello"));
fs.close();
}
查询指定目录
public void test5() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.19.4:9000"),conf,"root");
FileStatus[] ls = fs.listStatus(new Path("/"));//查询hdfs根目录
for (FileStatus l : ls) {
System.out.println(l.getPath());
}
}
递归查看指定目录下的所有文件
public void test6() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.19.4:9000"),conf,"root");
RemoteIterator<LocatedFileStatus> rt = fs.listFiles(new Path("/"),true);
while (rt.hasNext()){
System.out.println(rt.next());
}
}
重命名
public void test7() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.19.4:9000"),conf,"root");
fs.rename(new Path("/park"),new Path("/park1"));
}
获取文件块信息
public void test8() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.19.4:9000"),conf,"root");
BlockLocation[] data = fs.getFileBlockLocations(new Path("/park1/hello.txt"),0,Integer.MAX_VALUE);
for (BlockLocation datum : data) {
System.out.println(datum);
}
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 性能测试必备知识(9)- 深入理解“软中断”
- Vue老项目支持Webpack打包
- 09-4 更改用户密码
- 10-3 信号
- 11-1 环境中存储的是什么?
- 【Rust日报】2020-08-07 无船同志关于Rust未来Generator语法的新尝试
- 11-2 环境是如何建立的
- 11-3 激活修改
- 12-1 定制提示符
- MySQL INSERT的4种形态
- PowerBI DAX 性能优化 高级视图算法 超越经典 性能提升成千上万倍
- Java开发必备 Git 分支开发:规范指南及完全学会Git的24堂课笔记
- 聊聊dubbo-go的failbackCluster
- 视频综合管理平台EasyNVS通道列表如何获得RTMP地址和RTSP地址?
- 【每周一库】 rust-ftp - an FTP client written in Rust