一、导入jar包

本次使用的是eclipse操作的,所以需要手动导入jar包

在Hadoop.7.7/share/hadoop里有几个文件夹

common为核心类,此次需要引入common和hdfs两个文件夹下的所有jar包(包括作者写的三个jar包以及lib里面的所有jar包)

连接HDFS的服务

//连接hdfs的服务
@Test
public void connect()
{
Configuration conf=new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.0.32:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
FileStatus fileStatus = fileSystem.getFileStatus(new Path("/UPLOAD"));
System.out.println(fileStatus.isFile()); //是不是一个文件
System.out.println(fileStatus.isDirectory()); //是不是一个目录
System.out.println(fileStatus.getPath()); //文件的路径
System.out.println(fileStatus.getLen()); //文件大小
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }

重命名

在操作重命名是出现错误,是权限不够

执行hadoop fs -chmod 777 / 给予所有操作权限再运行就可以了

//重命名
@Test
public void mv()
{
Configuration conf=new Configuration();
try {
FileSystem fileSystem = FileSystem.get(new URI("hdfs://192.168.0.32:9000"), conf); //连接
boolean rename = fileSystem.rename(new Path("/UPLOAD/jdk-8u221-linux-x64.tar.gz"),new Path("/UPLOAD/jdk1.8.tar.gz"));
System.out.println(rename?"修改成功":"修改失败");
fileSystem.close(); //关闭
} catch (IOException | URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

创建文件夹

//创建文件夹
@Test
public void mkdir()
{
Configuration conf=new Configuration();
try {
FileSystem fileSystem = FileSystem.get(new URI("hdfs://192.168.0.32:9000"),conf); //连接
fileSystem.mkdirs(new Path("/test"));
fileSystem.mkdirs(new Path("/other/hello/world"));
fileSystem.close(); //关闭
} catch (IOException | URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

文件上传

//文件上传
@Test
public void upload()
{
Configuration conf=new Configuration();
try {
FileSystem fileSystem = FileSystem.get(new URI("hdfs://192.168.0.32:9000"),conf);
FSDataOutputStream out = fileSystem.create(new Path("/hadoop.jar"));
FileInputStream in=new FileInputStream(new File("D:\\hadoop.jar"));
byte[]b=new byte[];
int len=;
while((len=in.read(b))!=-)
{
out.write(b,,len);
in.close();
out.close();
}
} catch (IOException | URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

文件下载

//文件下载
@Test
public void download()
{
Configuration conf=new Configuration();
try {
FileSystem fileSystem = FileSystem.get(new URI("hdfs://192.168.0.32:9000"),conf);
FSDataInputStream in = fileSystem.open(new Path("/hadoop.jar"));
FileOutputStream out=new FileOutputStream(new File("D://soft//hadoop.jar"));
byte[]b=new byte[];
int len=;
while((len=in.read(b))!=-)
{
out.write(b,,len);
}
in.close();
out.close();
} catch (IOException | URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }

遍历文件系统

@Test   //遍历文件系统
public void lsr() {
Configuration conf = new Configuration();
try {
FileSystem fileSystem = FileSystem.get(new URI("hdfs://192.168.0.32:9000"),conf);
FileStatus[] status = fileSystem.listStatus(new Path("/"));
for(FileStatus f:status) {
judge(fileSystem,f);
}
fileSystem.close();
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
}
} public void judge(FileSystem fileSystem,FileStatus s) {
String name = s.getPath().toString().split("hdfs://192.168.0.32:9000/")[];
if(s.isDirectory()) {
System.out.println("文件夹: "+name);
try {
FileStatus[] status= fileSystem.listStatus(new Path("/"+name));
for(FileStatus f:status) {
judge(fileSystem,f);
}
} catch (IllegalArgumentException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
System.out.println("文件: "+name);
}
}

HDFS核心类FileSystem的使用的更多相关文章

  1. hadoop之HDFS核心类Filesystem的使用

    1.导入jar包,要使用hadoop的HDFS就要导入hadoop-2.7.7\share\hadoop\common下的3个jar包和lib下的依赖包.hadoop-2.7.7\share\hado ...

  2. Java代码操作HDFS测试类

    1.Java代码操作HDFS需要用到Jar包和Java类 Jar包: hadoop-common-2.6.0.jar和hadoop-hdfs-2.6.0.jar Java类: java.net.URL ...

  3. HDFS 工具类

    读取HDFS上文件数据 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import ...

  4. cesium核心类Viewer简介

    1.简单描述Viewer Viewer类是cesium的核心类,是地图可视化展示的主窗口,cesium程序应用的切入口,扮演必不可少的核心角色. 官网的英文解析如下: A base widget fo ...

  5. HDFS 核心原理

    HDFS 核心原理 2016-01-11 杜亦舒 HDFS(Hadoop Distribute File System)是一个分布式文件系统文件系统是操作系统提供的磁盘空间管理服务,只需要我们指定把文 ...

  6. Webwork 学习之路【03】核心类 ServletDispatcher 的初始化

    1. Webwork 与 Xwork 搭建环境需要的的jar 为:webwork-core-1.0.jar,xwork-1.0.jar,搭建webwork 需要xwork 的jar呢?原因是这样的,W ...

  7. Hibernate核心类用法-使用Transaction管理事务

    一个典型的事务应该使用下面的形式 在创建完Session对象后即使用beginTransaction()启动事务 从此开始直到commit()之间的代码 都会处于同一个事务中 这两个函数之间所有的数据 ...

  8. 理解Lucene索引与搜索过程中的核心类

    理解索引过程中的核心类 执行简单索引的时候需要用的类有: IndexWriter.ƒDirectory.ƒAnalyzer.ƒDocument.ƒField 1.IndexWriter IndexWr ...

  9. android的消息处理有三个核心类:Looper,Handler和Message。

    android的消息处理机制(图+源码分析)——Looper,Handler,Message   作为 一名android程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设 ...

随机推荐

  1. FFmpeg—— Bitstream Filters 作用

    原文链接: https://stackoverflow.com/questions/32028437/what-are-bitstream-filters-in-ffmpeg Let me expla ...

  2. Pandas 数据分析——超好用的 Groupby 详解

    在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别.年龄) ...

  3. 2.4 【配置环境】TestNG安装

    两种方法可以安装TestNG Eclipse插件:  (来源:http://blog.csdn.net/hongchangfirst/article/details/7679849/) 第一种,离线安 ...

  4. 一篇文章了解JsBridge

    链接:https://blog.csdn.net/duwen90/article/details/79389545

  5. mysql 查询结果保存为表

    mysql> create table stunow select distinct 学号,姓名,密码 from stu12to15 ;

  6. Python学习(六)—— 函数、全局变量与局部变量

    函数 函数的定义 def test(x): "The function definition" x += 1 return x def:定义函数的关键字 test:函数名 ():内 ...

  7. <位运算> 任意二进制数 异或两个相同的二进制数 还是原本的值

    二进制,即0与1. 因为两个相同的二进制 异或必为0.(类似于不进位加法) 二进制里与0异或为其原本的0与1.. 可得任意二进制数 异或两个相同的二进制数 还是原本的值. 可用于交换和加密.

  8. Jmeter之cookie处理的2中方法

    不添加cookie会出现什么结果呢? 举例:1)登录 2)手机充值 2.登录HTTP请求 3.充值 4.查看结果树,登录是成功的,但是充值不成功,提示请先登录. 如何解决这个问题呢?添加Cookie管 ...

  9. mysql中的数据类型长度

    “mysql中的数据类型长度是固定的 数据类型后面改的只是展示长度 没用的 int就是四个字节 2的31次方减一是最大值 所以改这个长度没用 只能改数据类型”

  10. python快速入门及进阶

    python快速入门及进阶 by 小强