一:准备工作

1.新建class类

  

2.开启HDFS服务

  

3.将配置文件拷贝进resources路径

  

  方便了Configuration的读取配置。

二:读出HDFS文件系统中的文件到控制台

4.读出在路径中的文件,显示在控制台上

  

5.分别解析,获取文件系统(两种方式)

  (方式一)

  

  (方式二)

  

  这种方式不需要复制配置文件进resources,但是这种被写死了。

6.分别解析,写入流

  

7.优化readFile

  

三:把文件上传到HDFS上,即为WriteFile

  

  注意点:fileName="user/beifeng/wc.input",加上wc.input

四:完整源代码

 package com.senior.hdfs;

 import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils; public class HDFSApp { public static FileSystem getFileSystem() throws Exception{
Configuration configuration=new Configuration();
FileSystem fileSystem=FileSystem.get(configuration);
return fileSystem;
}
//read
public static void read() throws Exception{
FileSystem fileSystem=getFileSystem();
String fileName="/user/beifeng/mapreduce/wordcount/input/wc.input";
Path path=new Path(fileName);
FSDataInputStream inStream=fileSystem.open(path);
try{
IOUtils.copyBytes(inStream, System.out, 4096, false);
}catch(Exception e){
e.printStackTrace();
} }
//write
public static void write() throws Exception{
FileSystem fileSystem=getFileSystem();
//output fileName
String outputFileName="/opt/datas/wc.input";
//input fileName
String inputFileNmae="/user/beifeng/mapreduce/wordcount/input2/wc.input";
Path path=new Path(inputFileNmae);
FSDataOutputStream outStream=fileSystem.create(path);
FileInputStream inStream=new FileInputStream(new File(outputFileName));
try{
IOUtils.copyBytes(inStream, outStream, 4096, false);
}catch(Exception e){
e.printStackTrace();
}finally{
IOUtils.closeStream(inStream);
IOUtils.closeStream(outStream);
} }
public static void main(String[] args) throws Exception {
// read();
write(); } }

012 HDFS API 文件读写代码演示的更多相关文章

  1. HDFS API 文件读写代码演示

    一:准备工作 1.新建class类 2.开启HDFS服务 3.将配置文件拷贝进resources路径 方便了Configuration的读取配置. 二:读出HDFS文件系统中的文件到控制台 4.读出在 ...

  2. Hadoop_HDFS文件读写代码流程解析和副本存放机制

    Hadoop学习笔记总结 01.RPC(远程过程调用) 1. RPC概念 远程过程指的不是同一个进程的调用.它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 不能直接拿到远 ...

  3. hadoop2.2原理:分析HDFS的文件读写

    File Read 程序举例: public class FileRead { public static void main(Sting[] args) throws Exception { Con ...

  4. 【Hadoop】二、HDFS文件读写流程

    (二)HDFS数据流   作为一个文件系统,文件的读和写是最基本的需求,这一部分我们来了解客户端是如何与HDFS进行交互的,也就是客户端与HDFS,以及构成HDFS的两类节点(namenode和dat ...

  5. 【HDFS API编程】从本地拷贝文件,从本地拷贝大文件,拷贝HDFS文件到本地

    接着之前继续API操作的学习 CopyFromLocalFile: 顾名思义,从本地文件拷贝 /** * 使用Java API操作HDFS文件系统 * 关键点: * 1)create Configur ...

  6. 【HDFS API编程】查看HDFS文件内容、创建文件并写入内容、更改文件名

    首先,重点重复重复再重复: /** * 使用Java API操作HDFS文件系统 * 关键点: * 1)创建 Configuration * 2)获取 FileSystem * 3)...剩下的就是 ...

  7. 【HDFS API编程】jUnit封装-改写创建文件夹

    首先:什么是jUnit  回顾: https://www.cnblogs.com/Liuyt-61/p/10374732.html 上一节我们知道: /** * 使用Java API操作HDFS文件系 ...

  8. 【HDFS API编程】第一个应用程序的开发-创建文件夹

    /** * 使用Java API操作HDFS文件系统 * 关键点: * 1)创建 Configuration * 2)获取 FileSystem * 3)...剩下的就是 HDFS API的操作了*/ ...

  9. 大数据【二】HDFS部署及文件读写(包含eclipse hadoop配置)

    一 原理阐述 1' DFS 分布式文件系统(即DFS,Distributed File System),指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.该系统架构 ...

随机推荐

  1. oracle数据库还原以及备份 包括快速备份(并发压缩)

    expdp jhpt/XXXX directory=databackup dumpfile=dpfile_201512091300_%U.dmp filesize=5G parallel=8 comp ...

  2. Postfix 邮件服务 - postfix服务

    postfix 邮件服务 也是基于sendmail (需要关闭或卸载sendmail)postfix 是一个电子邮件服务器,它为了改良sendmail邮件服务器而产生的,并且它的配置文件比sendma ...

  3. Linux之Ubuntu与Windows更改默认启动顺序[转载]

    装双系统后,经常会遇到与Windows更改默认启动顺序的需要,这样有助于开机时可以避免手动选择经常使用的系统了. 当然这解决办法不是博主的主意,本文纯属抄録者,故文章题目也声明了是转载,解决方案如下叙 ...

  4. Responsive响应式设计

    在IE6-8中完全是不支持CSS3 Media Queries的.那么为了让IE6-8支持,我们就很有必要的在IE9以下的浏览器中加上media-queries.js或者respond.js脚本: & ...

  5. Freemarker导出带图片的word

    1.新建一doc文档

  6. 【工具测试】Acunetix 11-登录后扫描的功能

    1.概要 在测试的过程中,会给一些只有登录口的测试站点,只有登录后才能访问更多的页面. Acunetix 11的登录后扫描功能摸索了老半天,原来这么神奇.学习了! 2.操作 登录之后 - [Add T ...

  7. spring session使用小记

    在并发量大的WEB系统中,Session一般不使用容器Session,而通常使用Redis作为Session的存储.如果为了保持Servlet规范中的Session接口继续可用,往往需要重新实现Ses ...

  8. Caching漫谈--关于Cache的几个理论

    如今缓存是随处可见了,如果你的程序还没有使用到缓存,那可能是你的程序并发量很低,或对实时性要求很低.我们公司的ERP在显示某些报表时,每次打开都需要花上几分钟的时间,假如搜索引擎也是这么慢,我想这家搜 ...

  9. kafka系列九、kafka事务原理、事务API和使用场景

    一.事务场景 最简单的需求是producer发的多条消息组成一个事务这些消息需要对consumer同时可见或者同时不可见 . producer可能会给多个topic,多个partition发消息,这些 ...

  10. 转载:2.2.3 配置项的注释《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19628.html 如果有一个配置项暂时需要注释掉,那么可以加"#"注释掉这一行配置.例如: #pid       ...