使用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包 在 ...
随机推荐
- 【原创】大数据基础之ElasticSearch(1)简介、安装、使用
ElasticSearch 6.6.0 官方:https://www.elastic.co/ 一 简介 ElasticSearch简单来说是对lucene的分布式封装,增加了shard(每个shard ...
- Python虚拟环境的安装与使用
通过virtualenv创建 首先安装virtualenv:pip3 install virtualenv 安装完成之后cd到合适的目录下键入命令: virtualenv 虚拟环境名称 (创建纯净的虚 ...
- mybatis 保存对象 参数类型
简单介绍:保存单个对象 ,参数类型的设置,正常的话应该设置成对应的pojo,我想起了以前,不懂事时候的一个做法,其实那时候刚接触到mabatis,做新增的时候,直接就是把需要插入表中的值,放到map里 ...
- bzoj 3277
十分之恶心的后缀自动机 (其实是水题,但是我太弱了...) 首先,有一个预备知识:bzoj 2780https://blog.csdn.net/lleozhang/article/details/89 ...
- RedHat 6配置yum源为网易镜像(转)
概述 由于版权的问题,RedHat6不能直接使用yum一些指令,需要配置yum源为网易镜像,但是网上谈到很多:整理一下,将有用的信息整理如下,以便于能够为其他的配置服务配置使用:需要卸载掉原理系统自带 ...
- 安装Visual C++ 6.0后报错:应用程序无法正常启动(0xc0000142)
最近在安装Visual C++ 6.0时,本来想用个中文版的,结果刚安装好就报了这个错误 百度后发现是由于汉化后的Visual C++ 6.0与win10不兼容造成的 解决办法就是替换程序,把中文版的 ...
- Oracle存储过程向Hadoop迁移中的问题及方案
本文记录Oracle存储过程向Hadoop迁移中遇到的问题及响应的解决办法,作为初学者,文中内容有不妥之处欢迎指正, 1.不支持IN中的子查询,Solution,使用INNER JOIN将子查询操作添 ...
- FZU 2285 迷宫寻宝
思路: bfs求最短路径. #include<stdio.h> #include<iostream> #include<queue> #include<cst ...
- js为什么是单线程的?10分钟了解js引擎的执行机制
深入理解JS引擎的执行机制 1.JS为什么是单线程的? 为什么需要异步? 单线程又是如何实现异步的呢? 2.JS中的event loop(1) 3.JS中的event loop(2) 4.说说setT ...
- Linux 内核参数 arp_ignore & arp_announce 详解
arp_ignore定义了对目标地址为本机IP的ARP询问的不同应答模式. arp_announce对网络接口(网卡)上发出的ARP请求包中的源IP地址作出相应的限制:主机会根据这个参数值的不同选择使 ...