一、读取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)的更多相关文章

  1. HDFS常用API(1)

    一.HDFS集群API所需要jar包的maven配置信息 <dependency> <groupId>org.apache.hadoop</groupId> < ...

  2. HDFS常用API操作 和 HDFS的I/O流操作

    前置操作 创建maven工程,修改pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  3. hdfs常用api(java)

    1.下载文件到本地 public class HdfsUrlTest { static{ //注册url 让java程序识别hdfs的url URL.setURLStreamHandlerFactor ...

  4. HDFS连接JAVA,HDFS常用API

    先在pom.xml中导入依赖包 <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/ha ...

  5. 大数据(5) - HDFS中的常用API操作

    一.安装java 二.IntelliJ IDEA(2018)安装和破解与初期配置 参考链接 1.进入官网下载IntelliJ IDEA https://www.jetbrains.com/idea/d ...

  6. HDFS Java API 常用操作

    package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; impo ...

  7. [b0014] HDFS 常用JAVA 操作实战

    目的: 学习用java进行的常用hdfs操作 参考: [b0002] Hadoop HDFS cmd常用命令练手 环境: hadoop2.6.4 win7 下的eclipse环境调试已经配置好,参考前 ...

  8. html5 canvas常用api总结(一)

    1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...

  9. compass General 常用api学习[Sass和compass学习笔记]

    compass 中一些常用api 包括一些浏览器hack @import "compass/utilities/general" Clearfix Clearfix 是用来清除浮动 ...

随机推荐

  1. css 样式 记录

    /* Track */::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); -webkit-bo ...

  2. jemter 新增sha256函数

    1  https://blog.csdn.net/y100100/article/details/80701049 2  https://blog.csdn.net/y100100/article/d ...

  3. 【Linux】系统基本命令

    # lsb_release -a 查看系统版本# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cp ...

  4. redis-cluster集群搭建

     Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用 ( HA ),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data Sha ...

  5. spring 容器的基础 XmlBeanFactory

    Spring容器最核心的两个类 DefaultListableBeanFactory  与 XmlBeanDefinitionReader ,XmlBeanFactory继承自DefaultLista ...

  6. LeetCode(75):分类颜色

    Medium! 题目描述: 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 ...

  7. 极光推送>>java SDK服务端集成后台项目(使用详解)

    PS:如果你是第一次用推送,那就直接按照我的步骤来,再去看官方文档,这样,更容易能理解操作流程.还有——-请耐心看 极光文档(java SDK)请参考 [ 极光文档 ] 步骤一: 首先,你必须在 [极 ...

  8. 步步为营-93-MVC+EF简单实例

    1:创建MVC项目 2:添加EF数据(这里选择DataBaseFirst模式) 3:添加控制器 3.1.1 创建列表页面 3.1.2 html页面 @using MvcApplication1 @{ ...

  9. vs2017初学c++环境配置及使用教程

    https://blog.csdn.net/jmpan_sjtu/article/details/79053169 https://blog.csdn.net/luoyu510183/article/ ...

  10. web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开

    https://blog.csdn.net/zgsdzczh/article/details/79744838 web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开   <style typ ...