1 读取数据

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;public class ReadFile {public static void main(String[] args) throws IOException{String uri = "hdfs://localhost:9000/user/saligia/input/mac";Configuration  conf = new Configuration();FileSystem fs = FileSystem.get(URI.create(uri), conf);InputStream in = null;try{in = fs.open(new Path(uri));// open 的是一个 FSDataInputStream 对象, 这个对象继承自 DataInputStream/**   public class FSDataINputStream extends DataINputStream*     implements Seekable, PositionedReadable{**   }*/IOUtils.copyBytes(in, System.out, 4096, false);BufferedReader readText = new BufferedReader(new InputStreamReader(in));while(readText.ready()){System.out.println(readText.readLine());}}catch(IOException e){//e.printStackTrace();}}
}

2. 写入数据

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.Progressable;public class WriteFile {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString  uriHdfs = "hdfs://localhost:9000/user/saligia/input/writejava";String uriLocal = "./WriteFile.java";Configuration conf = new Configuration();                              // 配置文件FileSystem hdfs = FileSystem.get(URI.create(uriHdfs), conf);           // 打开 HDFSFileSystem lofile = FileSystem.get(URI.create(uriLocal), conf);        // 打开本地文件InputStream fin = lofile.open(new Path(uriLocal));                                                                                                                     // 打开本地文件读OutputStream fout = hdfs.create(new Path(uriHdfs), new Progressable(){                                                                                                    // 打开 HDFS 写public void progress(){System.out.print(".");}});/**  create 返回的时 FSDataOutputStream*      public class FSDataOutputStream extends DataOutputStream implements Syncable{*      }**      HDFS 只允许对一个对以打开的文件顺序写入*          在现有文件末尾追加数据*/BufferedReader fread = new BufferedReader(new InputStreamReader(fin));BufferedWriter fwrite = new BufferedWriter(new OutputStreamWriter(fout));try{while(fread.ready()){fwrite.write(fread.readLine());fwrite.write("\n");}}catch(IOException e){//e.printStackTrace();}finally{fread.close();fwrite.close();}}
}

3. MakeFile

import java.io.IOException;
import java.net.URI;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;public class MakeDir {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString dirUri = "hdfs://localhost:9000/user/saligia/tmp";Configuration conf = new Configuration();FileSystem file = FileSystem.get(URI.create(dirUri), conf);// 创建目录System.out.println(file.mkdirs(new Path(dirUri)));}}

4. GlobFile

import java.io.IOException;
import java.net.URI;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;public class GlobFile {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString fileUri = "hdfs://localhost:9000/user/saligia/*";Configuration conf = new Configuration();FileSystem file = FileSystem.get(URI.create(fileUri), conf);FileStatus[] statusList = file.globStatus(new Path(fileUri), new PathFilter(){@Overridepublic boolean accept(Path arg0) {FileStatus st = null;try {st = FileSystem.get(URI.create(arg0.toString()), conf).getFileStatus(arg0);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(st.isDir()){return true;}return false;}});for(FileStatus it : statusList){System.out.println(it.getPath());}}}

5. FileStatus

import java.io.IOException;
import java.net.URI;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;public class ShowFileStatus {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString fileUri = "hdfs://localhost:9000/user/saligia/input/mac";Configuration conf = new Configuration();FileSystem file = FileSystem.get(URI.create(fileUri), conf);FileStatus stat = file.getFileStatus(new Path(fileUri));// 获取路径System.out.println("Path : " + stat.getPath());// 判断是否时目录System.out.println("isDir : " + stat.isDir());// 判断长度System.out.println("Len : " + stat.getLen());// 判断块大小System.out.println("Blocksize :" + stat.getBlockSize());// 所有者System.out.println("Owner : " + stat.getOwner());// 返回权限System.out.println("Permission : " + stat.getPermission());if(stat.isDir()){FileStatus[] list = file.listStatus(new Path(fileUri));for (FileStatus it : list){System.out.println(it.getPath());}}}}

6.DaleteFile

import java.io.IOException;
import java.net.URI;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;public class DeleteFile {public static void main(String[] args) throws IOException{String fileUri = "hdfs://localhost:9000/user/saligia/tmp";Configuration conf = new Configuration();FileSystem file = FileSystem.get(URI.create(fileUri), conf);file.delete(new Path(fileUri), true);}
}

4-HDFS API相关推荐

  1. hadoop: hdfs API示例

    利用hdfs的api,可以实现向hdfs的文件.目录读写,利用这一套API可以设计一个简易的山寨版云盘,见下图: 为了方便操作,将常用的文件读写操作封装了一个工具类: 1 import org.apa ...

  2. JAVA操作HDFS API(hadoop)

    http://www.cnblogs.com/alisande/archive/2012/06/06/2537903.html HDFS API详解 Hadoop中关于文件操作类基本上全部是在&quo ...

  3. 阿里云使用idea通过hdfs api来上传文件时出现could only be written to 0 of the 1 minReplication nodes.错误

    问题描述: 使用阿里云服务器,在本地windows电脑上使用idea进行hdfs api操作来上传文件时出现错误如下: org.apache.hadoop.ipc.RemoteException(ja ...

  4. 怎样在hdfs上创建多级目录文件夹_【HDFS API编程】第一个应用程序的开发-创建文件夹...

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

  5. hadoop学习笔记(八):Java HDFS API

    hadoop学习笔记(八):Java HDFS API 阅读目录 一.使用HDFS FileSystem详解 回到顶部 一.使用HDFS FileSystem详解 HDFS依赖的第三方包: hadoo ...

  6. 使用HDFS API实现hadoop HDFS文件系统的基本操作

    下面介绍使用hadoop的HDFS分布式文件系统的java API实现基本的文件操作,比如:创建文件.修给文件.创建目录或者文件夹.从本地系统上传文件到HDFS系统中.从HDFS文件系统中下载文件到本 ...

  7. HDFS API编程之副本系数

    Hadoop 版本:hadoop-2.6.0-cdh5.15.1 虽然在hdfs-site.xml中设置了副本数量: <property><name>dfs.replicati ...

  8. Hadoop入门(三)HDFS API

    一..HDFS 常用类 Configuration  配置 Path  路径 FileSystem  文件系统 Stream  流 IOUtils  IO工具 API文档 二.类解析 (1)Confi ...

  9. hdfs API命令操作京东云主机,采坑记录

    代码 public class HDFSApp { public static final String HDFS_PATH="hdfs://hadoop001:9000"; Co ...

  10. HDFS API 操作之文件下载、文件删除、文件名更改

    文件下载 @Test public void testCopyToLocalFile() throws Exception {//1 获取文件系统Configuration conf = new Co ...

最新文章

  1. 十二张图详解淘宝架构变迁
  2. Vagrant 管理部署 VirtualBox (推荐使用)
  3. zabbix-server启动报错解决
  4. 让你的VB6.0支持滚轮操作
  5. 理解 Delphi 的类(十一) - 深入类中的方法[8] - 抽象方法与抽象类
  6. 【Ubuntu】Windows硬盘安装Ubuntu14.04
  7. android用qq浏览器打开微信网页版,QQ浏览器怎么打开微信小程序?
  8. Tahoma Arial Verdana三种字体的选择
  9. 飞信死了,运营商也快死了
  10. 博图软件的C语言脚本,wincc v13 博图软件里如何写脚本程序
  11. SAP HR系统2019年五一节假日调整
  12. Cg Programming In Unity Specular Highlights (Wiki翻译自用)
  13. 19-Python基础知识学习-----迭代器与生成器
  14. 开源中国部分源代码分享
  15. Linux中shell的ls,linux系统shell中ls指令
  16. 有什么手写文字识别软件?这些软件值得收藏
  17. 小米电视4a刷鸿蒙,小米电视4A精简系统教程
  18. 利用Python进行性能测试(上)
  19. bootstrap实战经验
  20. 渲染(render)和着色(shading)

热门文章

  1. webrtc janus服务器部署在公网,coturn转发媒体流
  2. Matlab数据统计与分析(四)——参数估计
  3. 潜在狄利克雷分配(LDA)(latent Dirichlet allocation)
  4. 美团 CEO 王兴:从 0 到干到 300 亿美金,格局上输了,再多努力都不可能赢
  5. Idea多次启动同一个服务
  6. 多线程操作同一个变量
  7. java中接口可以继承接口吗?
  8. osgEarth目标选择
  9. 隐藏IDEA的行首的黄色小灯泡
  10. 创意相册、3D立体相册