使用Eclipse来操作HDFS的文件
一.常用类
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的文件的更多相关文章
- 在eclipse上的hdfs的文件操作
参考:http://dblab.xmu.edu.cn/blog/hadoop-build-project-using-eclipse/?tdsourcetag=s_pcqq_aiomsg: http ...
- 使用javaAPI操作hdfs
欢迎到https://github.com/huabingood/everyDayLanguagePractise查看源码. 一.构建环境 在hadoop的安装包中的share目录中有hadoop所有 ...
- 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)
一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...
- 用流的方式来操作hdfs上的文件
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- 吴裕雄--天生自然HADOOP操作实验学习笔记:hdfs分布式文件系统安装
实验目的 复习安装jdk 学习免密码登录 掌握安装配置hdfs集群的方法 掌握hdfs集群的简单使用和检查其工作状态 实验原理 1.hdfs是什么 hadoop安装的第一部分是安装hdfs,hdfs是 ...
- eclipse下使用API操作HDFS
1)使用eclipse,在HDFS上创建新目录 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Fil ...
- HDFS的Java客户端操作代码(HDFS删除文件或目录)
1.HDFS删除文件或目录 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.hadoo ...
- java操作hdfs实例
环境:window7+eclipse+vmware虚拟机+搭建好的hadoop环境(master.slave01.slave02) 内容:主要是在windows环境下,利用eclipse如何来操作hd ...
- Hadoop Java API操作HDFS文件系统(Mac)
1.下载Hadoop的压缩包 tar.gz https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/ 2.关联jar包 在 ...
随机推荐
- 【原创】运维基础之keepalived
keepalived 2.0.12 官方:http://www.keepalived.org/ 一 简介 Keepalived is a routing software written in C. ...
- const与#define相比有什么不同?
C++语言可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的优点:● const常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查,而对后者只进行字符 ...
- Eclipse安装git插件以及关联导入GitHub项目
一.Eclipse配置git 1.查看自己eclipse的版本 打开eclipse 导航: help->AboutEclipse 如图: 2.检查Eclipse中是否已安装Git插件 菜单栏He ...
- 连接慢的主要原因是DNS解析导致
连接慢的主要原因是DNS解析导致解决方法: 1.在ssh服务端上更改/etc/ssh/sshd_config文件中的配置为如下内容:UseDNS no# GSSAPI optionsGSSAPIAut ...
- Postgresql/Greenplum中将数字转换为字符串TO_CHAR函数前面会多出一个空格
-- 问题1..Postgresql中将数字转换为字符串前面多出一个空格. SELECT TO_CHAR(, '); -- 解决1.使用如下,参数二前面加上fm就可以去掉空格了,如下: SELECT ...
- Spring Boot mybatis HashMap +layui 通用分页
背景: mybatis 常用数据查询的方法都是先建实体类,再建Mapper,最后写Service,如果只是单纯的去查询数据显示,这样操作太麻烦.本文就以mybatis +layui创建通用分页类,简化 ...
- codeforces 502 g The Tree
题解: 一道优秀的题目 有几种做法: 1.维护后缀和 刚开始我想的是维护前缀和 然后用$sum[x]-sum[y]>=dep[x]-dep[y]$来做 但是这样子树赋值为0这个操作就很难进行了 ...
- ABP给WebApi添加SwaggerUI,生成可交互接口文档
在ABP模板项目中,通过SwaggerUI可以为我们的WebApi生成动态的可交互接口文档页面,从而可以很方便的测试调用我们的WebApi接口. 一.集成Swagger 右键项目YoYo.Web,打开 ...
- iOS 开发中字典和字符串的转换
1.字符串转字典 NSString * jsonString = @""; NSData *jsonData = [jsonString dataUsingEncoding:NSU ...
- GMA Round 1 波动函数
传送门 波动函数 f(x)是一个定义在R上的偶函数,f(x)=f(2-x),当$x\in[-1,1]$时,f(x)=cos(x),则函数$g(x)=f(x)-|cos(\pi x)|$,求g(x)在[ ...