一.常用类

  1.Configuration

Hadoop配置文件的管理类,该类的对象封装了客户端或者服务器的配置(配置集群时,所有的xml文件根节点都是configuration)

创建一个Configuration对象时,其构造方法会默认加载hadoop中的两个配置文件,分别是hdfs-site.xml以及core-site.xml,这两个文件中会有访问hdfs所需的参数值,主要是fs.default.name,指定了hdfs的地址,有了这个地址客户端就可以通过这个地址访问hdfs了。即可理解为configuration就是hadoop中的配置信息。

  2.FileSystem

该类的对象是一个文件系统对象,对HDFS中的文件进行的一系列操作,如创建等

  3.FileStatus

获取文件或者文件夹的元信息!比如:文件路径,文件大小,文件所有者,所在的块大小,文件修改时间,备份数量,权限等!

  4.FSDataInputStream

输入流对象!可以将HDFS中的文件或者文件夹读取到本地!

  5.FSDataOutputStream

输出流对象! 可以将本地的文件或者文件夹上传到HDFS中!

二.实际应用

  1.

static FileSystem fileSystem=null;
static{
//创建连接
String uri="hdfs://192.168.100.2:9000";
//加载hadoop配置文件
Configuration con=new Configuration();
//创建一个可以操作HDFS的对象
try{
fileSystem=FileSystem.get(URI.create(uri),con)
}catch(IOException e){
e.printStackTrace();
}
}

  2.对文件的操作

1.获取单个文件
public static void catHDFS(String path)throws IOException{
//获取文件路径
FileStatus fileStatus=fileSystem.getFileStatus(new Path(path));
System.out.println(fileStatus);
}
2.查询文件内容
public static void readFile(String fileName)throws IOException{
//获取指定文件路径
FSDateInputStream input=fileSystem.open(new Path(fileName));
//将文件内容装载到BufferedReader对象当中
BufferedReader br=new BufferedReader(new InputStreamReader(input));
String line="";
//循环读取数据
while((line=reader.readLine())!=null){
System.out.println(line);
}
//关闭资源
reader.close();
input.close();
fileSystem.close();
}
3.创建一个文件,并向其中写入内容
public static void createFile(String fileName)throws IOException{
if(fileSystem.exists(new Path(fileName))) {
System.out.println("文件已经存在");
}else {
System.out.println("可以创建");
FSDataOutputStream create=fileSystem.create(new Path(fileName));
String str="wsjxzzgdfq";
create.write(str.getBytes());
create.flush();
create.close();
}
fileSystem.close(); }
4.创建一个空文件夹
public static void mkdir(String fileName)throws IOException{
boolean mkdir=fileSystem.mkdirs(new Path(fileName));
if(mkdir) {
System.out.println("成功");
}else {
System.out.println("失败");
}
fileSystem.close();
}
5.重命名文件或文件夹
public static void rename(String oldName,String newName)throws IOException{
boolean rename=fileSystem.rename(new Path(oldName), new Path(newName));
if(rename) {
System.out.println("成功");
}else {
System.out.println("失败");
}
fileSystem.close();
}
6.重命名文件或文件夹
public static void remove(String fileName)throws IOException{
@SuppressWarnings("deprecation")
boolean delete = fileSystem.delete(new Path(fileName));
if(delete) {
System.out.println("删除成功");
}else {
System.out.println("删除失败");
} fileSystem.close();
}
7.从本地(本机)上传文件到HDFS
public static void upfile(String localName,String hdfsName)throws IOException{
//调用上传文件的方法
fileSystem.copyFromLocalFile(new Path(localName), new Path(hdfsName));
fileSystem.close();
}
8.下载文件
public static void downfile(String localName,String hdfsName)throws IOException{
//调用下载文件的方法
fileSystem.copyToLocalFile(new Path(hdfsName), new Path(localName));
fileSystem.close();
}

  3.执行上述方法(把想执行的方法去掉注释就好了)

9.执行方法
public static void main(String[]args) throws Exception{
/*catHDFS("/input/file1.txt");*/
/*readFile("/input/file3.txt");*/
/*createFile("wd.txt");*/
/*mkdir("/wdj");*/
/*rename("/input/file3.txt","/input/file4.txt");*/
/*remove("/wdj");*/
/*upfile("C:\\Users\\wd\\Desktop\\wwww.txt","/input");*/
/*downfile("C:\\Users\\wd\\Desktop","/input/file1.txt");*/
}

使用Eclipse来操作HDFS的文件的更多相关文章

  1. 在eclipse上的hdfs的文件操作

    参考:http://dblab.xmu.edu.cn/blog/hadoop-build-project-using-eclipse/?tdsourcetag=s_pcqq_aiomsg:  http ...

  2. 使用javaAPI操作hdfs

    欢迎到https://github.com/huabingood/everyDayLanguagePractise查看源码. 一.构建环境 在hadoop的安装包中的share目录中有hadoop所有 ...

  3. 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)

    一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...

  4. 用流的方式来操作hdfs上的文件

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  5. 吴裕雄--天生自然HADOOP操作实验学习笔记:hdfs分布式文件系统安装

    实验目的 复习安装jdk 学习免密码登录 掌握安装配置hdfs集群的方法 掌握hdfs集群的简单使用和检查其工作状态 实验原理 1.hdfs是什么 hadoop安装的第一部分是安装hdfs,hdfs是 ...

  6. eclipse下使用API操作HDFS

    1)使用eclipse,在HDFS上创建新目录 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Fil ...

  7. HDFS的Java客户端操作代码(HDFS删除文件或目录)

    1.HDFS删除文件或目录 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.hadoo ...

  8. java操作hdfs实例

    环境:window7+eclipse+vmware虚拟机+搭建好的hadoop环境(master.slave01.slave02) 内容:主要是在windows环境下,利用eclipse如何来操作hd ...

  9. Hadoop Java API操作HDFS文件系统(Mac)

    1.下载Hadoop的压缩包 tar.gz   https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/ 2.关联jar包 在 ...

随机推荐

  1. shim和polyfill

    shim是将新的api引入旧的环境 polyfill是一段代码或插件 https://www.aliyun.com/jiaocheng/773254.html 理解得不够透彻...

  2. react - web + webpack4 从0构建

    https://www.jianshu.com/p/91a4214b913b  文章https://github.com/Liao123/react-web 可运行的代码 dev分支

  3. day13-迭代器及生成器

    iterable:可迭代的:iterator:迭代器: print(dir([ ]))  #打印出列表所拥有的所有方法: 可迭代协议:只要含有__iter__方法的都是可迭代的. 迭代器协议:含有__ ...

  4. iOS开发多线程之NSThread

    一.NSThread的属性与方法 1.NSThread 类方法 类方法,顾名思义通过类名直接调用的方法 1. + (void)detachNewThreadWithBlock:(void (^)(vo ...

  5. 20165328 实验四《Andriid应用开发》实验报告

    一.实验一:Andriod Stuidio的安装测试: 实验要求: 参考                                                                 ...

  6. C语言fread/fwrite填坑记

    坑的描述 用fwrite把数据写入文件,再用fread读取,发现后半部分的数据可能是错的. 原因:原本要写入文件的数据中,有0x0A,如果用的是文本模式打开的文件流,在windows下0x0A会被转换 ...

  7. 学习笔记: Expression表达式目录树详解和扩展封装

    1. 表达式链接扩展封装,ORM常用 And  Or /// <summary> /// 表达式访问者 /// </summary> public class Expressi ...

  8. 必须知道的Linux内核常识详解

    一.内核功能.内核发行版 1.到底什么是操作系统 (1)linux.windows.android.ucos就是操作系统: (2)操作系统本质上是一个程序,由很多个源文件构成,需要编译连接成操作系统程 ...

  9. UOJ#172. 【WC2016】论战捆竹竿 字符串 KMP 动态规划 单调队列 背包

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ172.html 题解 首先,这个问题显然是个背包问题. 然后,可以证明:一个字符串的 border 长度可 ...

  10. POJ 1208 The Blocks Problem --vector

    http://poj.org/problem?id=1208 晚点仔细看 https://blog.csdn.net/yxz8102/article/details/53098575 #include ...