HDFS常用API(2)
一、读取HDFS文件数据、将本地文件写入HDFS中文件、使用IOUtils读写数据
**
* @author: PrincessHug
* @date: 2019/3/18, 17:24
* @Blog: https://www.cnblogs.com/HelloBigTable/
*/
public class HdfsClientDemo03 {
FileSystem fs = null;
Configuration conf = null; @Before
public void init() throws URISyntaxException, IOException, InterruptedException {
conf = new Configuration();
fs = FileSystem.get(new URI("hdfs://192.168.126.128:9000/"),conf,"root");
} /**
* 使用缓冲流读数据
* @throws IOException
*/
@Test
public void ReadData01() throws IOException {
FSDataInputStream in = fs.open(new Path("/words1.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String line = null;
//读数据
while ((line = br.readLine()) != null){
System.out.println(line);
}
//关闭资源
br.close();
in.close();
fs.close();
} /**
* 使用字节数据来接收数据
* @throws IOException
*/
@Test
public void ReadData02() throws IOException {
FSDataInputStream in = fs.open(new Path("/words1.txt"));
byte[] bytes = new byte[1024];
in.read(bytes);
System.out.println(new String(bytes));
in.close();
fs.close();
} /**
* 读取自定义偏移量的数据
* @throws IOException
*/
@Test
public void randomRead() throws IOException {
FSDataInputStream in = fs.open(new Path("/words1.txt"));
in.seek(10);
byte[] bytes = new byte[1024];
in.read(bytes);
System.out.println(new String(bytes));
in.close();
} /**
* 从本地文件读取数据写入hdfs文件中
* @throws IOException
*/
@Test
public void writeData() throws IOException {
FSDataOutputStream out = fs.create(new Path("/window1.txt"), false);
FileInputStream in = new FileInputStream("G:\\潭州课堂笔记视频作业\\java\\集合.txt");
byte[] bytes = new byte[1024];
int read = 0;
while ((read = in.read(bytes)) != -1){
out.write(bytes,0,read);
}
in.close();
out.close();
fs.close();
} /**
* 向hdfs文件中写自定义的数据
*/
@Test
public void writeData01() throws IOException {
FSDataOutputStream out = fs.create(new Path("/Wyh"));
out.write("I love dilireba".getBytes());
out.close();
fs.close();
} /**
* 使用IOUtils的传输流方法上传文件
* @throws IOException
*/
@Test
public void putFileToHdfs() throws IOException {
//从本地文件获取数据流
FileInputStream fis = new FileInputStream(new File("G:\\潭州课堂笔记视频作业\\java\\多线程.txt"));
//定义输出流对象
FSDataOutputStream fos = fs.create(new Path("/threads.txt"));
//流的传输
IOUtils.copyBytes(fis,fos,conf);
//关闭流
IOUtils.closeStream(fis);
IOUtils.closeStream(fos);
fs.close();
} @Test
public void getFileFromHdfs() throws IOException {
//从hdfs文件获取输入流
FSDataInputStream fis = fs.open(new Path("/threads.txt"));
//定义输出流对象
FileOutputStream fos = new FileOutputStream(new File("G:\\潭州课堂笔记视频作业\\java\\threads.txt"));
//流的传输
IOUtils.copyBytes(fis,fos,conf);
//关闭流
IOUtils.closeStream(fis);
IOUtils.closeStream(fos);
fs.close();
}
}
HDFS常用API(2)的更多相关文章
- HDFS常用API(1)
一.HDFS集群API所需要jar包的maven配置信息 <dependency> <groupId>org.apache.hadoop</groupId> < ...
- HDFS常用API操作 和 HDFS的I/O流操作
前置操作 创建maven工程,修改pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...
- hdfs常用api(java)
1.下载文件到本地 public class HdfsUrlTest { static{ //注册url 让java程序识别hdfs的url URL.setURLStreamHandlerFactor ...
- HDFS连接JAVA,HDFS常用API
先在pom.xml中导入依赖包 <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/ha ...
- 大数据(5) - HDFS中的常用API操作
一.安装java 二.IntelliJ IDEA(2018)安装和破解与初期配置 参考链接 1.进入官网下载IntelliJ IDEA https://www.jetbrains.com/idea/d ...
- HDFS Java API 常用操作
package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; impo ...
- [b0014] HDFS 常用JAVA 操作实战
目的: 学习用java进行的常用hdfs操作 参考: [b0002] Hadoop HDFS cmd常用命令练手 环境: hadoop2.6.4 win7 下的eclipse环境调试已经配置好,参考前 ...
- html5 canvas常用api总结(一)
1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...
- compass General 常用api学习[Sass和compass学习笔记]
compass 中一些常用api 包括一些浏览器hack @import "compass/utilities/general" Clearfix Clearfix 是用来清除浮动 ...
随机推荐
- liunx 安装redis 4.0
liunx 上安装redis 4.0.1 第一步:将 redis-4.0.1.tar.gz 压缩问上传至/home目录下 第二步: 解压文件 tar -zxvf redis-4.0.1.tar.g ...
- 在 Linux 中自动启动 Confluence 6
在 Linux/Solaris 环境下,最好的办法是对每一个服务进行安装和配置(包括 Confluence),同时配置这些服务权限为他们所在用户需要的服务权限即可, 为实例创建一个 Confluenc ...
- (五)STL算法
.算法 1.算法通过迭代器来操作容器中的数据: 2.算法为模板函数: 二.迭代器与算法 1.根据移动能力,将迭代器分成了五类 2.使用萃取,输出各个容器中,迭代器的类别 3.其中istream, os ...
- 各数据库连接maven配置
Derbydb driver maven dependency<dependency> <groupId>org.apache.derby</groupId> &l ...
- 分布式事务XA
1.什么是分布式事务 分布式事务就是指事务的参与者.支持事务的服务器.资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上.以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成 ...
- bzoj 1415
莫名互测题... 这题一看就是期望dp,可是不会转移,所以考试写50分暴力走人... #include <cstdio> #include <cmath> #include & ...
- OrCAD Capture CIS 16.6 快速地编辑Part的引脚名称
操作系统:Windows 10 x64 工具1:OrCAD Capture CIS 16.6-S062 (v16-6-112FF) 工具2:Excel 参考1:http://www.360doc.co ...
- Allegro PCB Design GXL (legacy) 元器件的坐标文件
Allegro PCB Design GXL (legacy) version 16.6-2015 一.菜单:Tools > Reports... 二.在“Available Reports ( ...
- SpringMVC 框架完成图片上传到项目路径操作
/** * 保存添加 * * @return */ @RequestMapping(value = "taizhang/add.action", method = { Reques ...
- 论文阅读笔记三十九:Accurate Single Stage Detector Using Recurrent Rolling Convolution(RRC CVPR2017)
论文源址:https://arxiv.org/abs/1704.05776 开源代码:https://github.com/xiaohaoChen/rrc_detection 摘要 大多数目标检测及定 ...