HDFS学习总结之API交互
第一种、shell交互
例子:
1、 hdfs dfs -ls [-R] <args>
-R:递归列出目录所有内容
hdfs dfs -ls / :列出根目录的内容
2、hdfs dfs -put <localsrc> ... <dst> 上传文件
3、hdfs dfs -text <src> 或者 hdfs dfs -cat URI [URI ...] 查看文件内容
4、hdfs dfs -mkdir [-p] <paths> 创建文件夹
-p:自动创建父目录
5、hdfs dfs -rm [-f] [-r|-R] [-skipTrash] URI [URI ...] 删除文件
第二种、Java交互
package rdb.com.hadoop01;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/*
* Hadoop HDFS Java API 操作
*/
public class HDFSAPP {
public static final String HDFS_PATH="hdfs://192.168.44.183:8020";
FileSystem fileSystem = null;
Configuration configuration = null;
@Before
public void setUp()throws Exception{
configuration = new Configuration();
fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration,"hadoop");
}
/**
* 创建文件夹
* @throws IOException
* @throws IllegalArgumentException
*/
@Test
public void mkdir() throws Exception{
//创建文件夹
fileSystem.mkdirs(new Path("/javaApi/test01"));
}
/**
* 创建文件
*@throws Exception
*/
@Test
public void create()throws Exception{
FSDataOutputStream outPut = fileSystem.create(new Path("/javaApi/test01/a.txt"));
outPut.write("hadoop 分布式文件系统:HDFS".getBytes());
outPut.flush();
outPut.close();
}
/**
* 查看文件内容
*@throws Exception
*/
@Test
public void cat()throws Exception{
FSDataInputStream input = fileSystem.open(new Path("/javaApi/test01/a.txt"));
IOUtils.copyBytes(input, System.out, 1024);
input.close();
}
/**
* 重命名
*@throws Exception
*/
@Test
public void rename() throws Exception{
fileSystem.rename(new Path("/javaApi/test01/a.txt"), new Path("/javaApi/test01/b.txt"));
}
/**
* 从本地拷贝文件到hdfs
*/
@Test
public void copyFromLocalFile()throws Exception{
fileSystem.copyFromLocalFile(new Path("D://PS//logo.png"), new Path("/javaApi/test01"));
}
/**
* 从本地拷贝大文件,带进度条上传
*@throws Exception
*/
@Test
public void copyFromLocalFileWithProgress()throws Exception{
InputStream in = new BufferedInputStream(new FileInputStream(new File("D://PS//001.rar")));
FSDataOutputStream out = fileSystem.create(new Path("/javaApi/test01/001.rar"), new Progressable() {
public void progress() {
//以*表示上传进度
System.out.print("*");
}
});
IOUtils.copyBytes(in, out, 1024);
}
/**
* 下载文件
*@throws Exception
*/
@Test
public void copyToLocal()throws Exception{
fileSystem.copyToLocalFile(false,new Path("/javaApi/test01/b.txt"), new Path("D://PS//tmp//"),true);
}
@Test
public void listPath()throws Exception{
FileStatus[] fileStatus = fileSystem.listStatus(new Path("/javaApi/test01"));
for(FileStatus f:fileStatus){
String isDir = f.isDirectory()? "文件夹" : "文件";
String path = f.getPath().toString();
System.out.println(isDir+":"+path);
}
}
/**
* 删除
*@throws Exception
*/
@Test
public void delete()throws Exception{
fileSystem.delete(new Path("/javaApi/test01"),true);
}
@After
public void tearDown() throws Exception{
fileSystem.close();
}
}
HDFS学习总结之API交互的更多相关文章
- 深度学习常用数据集 API(包括 Fashion MNIST)
基准数据集 深度学习中经常会使用一些基准数据集进行一些测试.其中 MNIST, Cifar 10, cifar100, Fashion-MNIST 数据集常常被人们拿来当作练手的数据集.为了方便,诸如 ...
- hadoop之HDFS学习笔记(一)
主要内容:hdfs的整体运行机制,DATANODE存储文件块的观察,hdfs集群的搭建与配置,hdfs命令行客户端常见命令:业务系统中日志生成机制,HDFS的java客户端api基本使用. 1.什么是 ...
- HDFS学习
HDFS体系结构 HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)(如图所示).名称节点作为中心服务器, ...
- 测试开发:从0到1学习如何测试API网关
本文来自我的一名学员分享 日常工作中,难免会遇到临危受命的情况,虽然没有这么夸张,但是也可能会接到一个陌生的任务,也许只是对这个概念有所耳闻.也许这个时候会感到一丝的焦虑,生怕没法完成领导交给的测试任 ...
- #学习笔记#JSP数据交互
#学习笔记#JSP数据交互 数据库的使用方式: 当用户在第一个页面的查询框输入查询语句点提交的时候我们是用什么样的方式完成这个查询的? 答:我们通过在第一个页面提交表单的形式,真正的数据库查询时在 ...
- SVG 学习<四> 基础API
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- 大数据(5) - HDFS中的常用API操作
一.安装java 二.IntelliJ IDEA(2018)安装和破解与初期配置 参考链接 1.进入官网下载IntelliJ IDEA https://www.jetbrains.com/idea/d ...
- 前后端API交互数据加密——AES与RSA混合加密完整实例
前言 前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门:https://blog.csdn.net/ityouknow/article/details/80603617),文中讲到利用R ...
- Java学习笔记之---API的应用
Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个 ...
随机推荐
- 3D点云重建原理及Pytorch实现
3D点云重建原理及Pytorch实现 Pytorch: Learning Efficient Point Cloud Generation for Dense 3D Object Reconstruc ...
- kali2020.4安装openvas(gvm)
记录一下,方便复习 1.更换kali源,默认源注释掉. sudo vim /etc/apt/sources.list 中科大 deb http://mirrors.ustc.edu.cn/kali k ...
- BP-Wrapper:无锁竞争的缓存替换算法系统框架
BP-Wrapper:无锁竞争的替换算法系统框架 最近看了一个golang的高性能缓存ristretto,该缓存可以很好地实现如下功能: Concurrent High cache-hit ratio ...
- 已经安装好了tensorboardX,任然报错 No module named ‘tensorboardX‘ ??
问题: 1.在jupyter notebook网页版中已经使用命令pip install tensorboardX来安装tensorboardX包,但是运行程序时仍旧出现错误:No module na ...
- 升级 macOS Big Sur 差点丢了我多年的珍藏文件(夹)!!!
原来升级 macOS Big Sur 过程中会转移根目录下的个人文件(夹). 春节期间升级了一下 macOS ,升级之前就比较担心丢数据,然而怕什么来什么.升级之后发现根目录下的个人文件(夹)都不见了 ...
- 【C++】fopen与fopen_s
说明: VS2010中使用fopen,是没有问题的.使用VS2015时由于VS的高版本对文件操作的安全性有了较高的要求,所以会出现如下情况: fopen用法: fp = fopen(filename ...
- You Only Look One-level Feature
你只需要看一个层次的特征 摘要:本文回顾了单阶段检测器的特征金字塔网络(FPN),指出FPN的成功在于其对目标检测优化问题的分治解决,而不是多尺度特征融合.从优化的角度来看,我们引入了一种替代的方法来 ...
- 小目标增强(Augmentation for small object)
小物体检测的增强 摘要:在近些年来,目标检测已经有了长足的进步.尽管有很大改进,但是在小目标和大目标检测性能方面还是有巨大的差距.我们在具有挑战性的数据集MS-COCO上分析了目前性能最好的模型Mas ...
- 一次性讲清楚spring中bean的生命周期之一:getSingleton方法
要想讲清楚spring中bean的生命周期,真的是不容易,以AnnotationConfigApplicationContext上下文为基础来讲解bean的生命周期,AnnotationConfigA ...
- 02 Linux系统发送告警邮件
# yum install mailx -y # vim /etc/mail.rc set from=hyjy2504164765@163.com smtp=smtp.163.com set smtp ...