hadoop之HDFS核心类Filesystem的使用
1.导入jar包,要使用hadoop的HDFS就要导入hadoop-2.7.7\share\hadoop\common下的3个jar包和lib下的依赖包、hadoop-2.7.7\share\hadoop\hdfs下的3个jar包和lib下的依赖包
2.-ls 查看目录下的所有文件和文件夹
@Test
public void listStatus() {
Configuration conf = new Configuration();
//使用hdfs的fs功能,客户端就会访问core-site.xml配置文件
//这里是设置core-site.xml中的属性fs.defaultFS和属性值hdfs://192.168.xx.xx:9000
//注意写自己的ip地址
conf.set("fs.defaultFS", "hdfs://192.168.xx.xx:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
//查看的路径
FileStatus[] listStatus = fileSystem.listStatus(new Path("/"));
for(int i = 0; i < listStatus.length; ++i)
{ String dpath = listStatus[i].getPath().toString();
System.out.println(dpath);
}
fileSystem.close();
} catch (IOException e) {
e.printStackTrace();
}
}
3.-lsr 或者 -ls -R 递归查看
@Test
public void lsrtest() {
// 要递归遍历的路径
lsr("/");
}
public static List<String> lsr(String path) {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.xx.xx:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
FileStatus[] listStatus = fileSystem.listStatus(new Path(path));
for(int i = 0; i < listStatus.length; ++i)
{
String abpath = listStatus[i].getPath().toString();
System.out.println(abpath);
boolean directory = listStatus[i].isDirectory();
if (directory) {
lsr(abpath);
}
}
fileSystem.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
4.-mkdir 创建文件夹
@Test
public void mkdir() {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.xx.xx:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
boolean mkdirs = fileSystem.mkdirs(new Path("/lyx02/lyx002/lyx0002"));
System.out.println(mkdirs?"创建成功":"创建失败");
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
5.-touchz 创建文件
@Test
public void createNewFile() {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.xx.xx:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
boolean createNewFile = fileSystem.createNewFile(new Path("/lyx02/lyx002/22.txt"));
System.out.println(createNewFile?"创建成功":"创建失败");
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
6.-put 下载hdfs下的文件到主机
@Test
public void put() {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.xx.xx:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
//hdfs下的路径
FSDataInputStream in = fileSystem.open(new Path("/1.txt"));
FileOutputStream destFile = new FileOutputStream(new File("D:\\111.txt"));
BufferedOutputStream out = new BufferedOutputStream(destFile);
int count = -1;
byte[]buffer = new byte[1024 *8];
while((count=in.read(buffer))!=-1) {
out.write(buffer,0,count);
}
in.close();
out.close();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
7.-get 上传主机文件到hdfs
@Test
public void get() {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.xx.xx:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
FSDataOutputStream out = fileSystem.create(new Path("/555.txt"));
FileInputStream srcFile = new FileInputStream(new File("D:\\111.txt"));
BufferedInputStream in = new BufferedInputStream(srcFile);
int count = -1;
byte[]buffer = new byte[1024 *8];
while((count=in.read(buffer))!=-1) {
out.write(buffer,0,count);
}
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8.-copyFromLocalFile 同get
@Test
public void copyFromLocalFile() {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.xx.xx:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
fileSystem.copyFromLocalFile(new Path("D:\\111.txt"), new Path("/666.txt"));
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
9.-copyToLocalFile 同put
@Test
public void copyToLocalFile() {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.xx.xx:9000");
try {
FileSystem fileSystem = FileSystem.get(conf);
fileSystem.copyToLocalFile(false,new Path("/666.txt"),new Path("D:\\666.txt"),true);
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
hadoop之HDFS核心类Filesystem的使用的更多相关文章
- HDFS核心类FileSystem的使用
一.导入jar包 本次使用的是eclipse操作的,所以需要手动导入jar包 在Hadoop.7.7/share/hadoop里有几个文件夹 common为核心类,此次需要引入common和hdfs两 ...
- 非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开 ...
- Hadoop2源码分析-HDFS核心模块分析
1.概述 这篇博客接着<Hadoop2源码分析-RPC机制初识>来讲述,前面我们对MapReduce.序列化.RPC进行了分析和探索,对Hadoop V2的这些模块都有了大致的了解,通过对 ...
- hadoop之HDFS学习笔记(一)
主要内容:hdfs的整体运行机制,DATANODE存储文件块的观察,hdfs集群的搭建与配置,hdfs命令行客户端常见命令:业务系统中日志生成机制,HDFS的java客户端api基本使用. 1.什么是 ...
- 介绍hadoop中的hadoop和hdfs命令
有些hive安装文档提到了hdfs dfs -mkdir ,也就是说hdfs也是可以用的,但在2.8.0中已经不那么处理了,之所以还可以使用,是为了向下兼容. 本文简要介绍一下有关的命令,以便对had ...
- hadoop的dfs工具类一个【原创】
开始没搞定插件问题,就弄了个dsf操作类,后面搞定了插件问题,这玩意也就聊胜于无了,还是丢这里算了. 首先是一个配置,ztool.hadoop.properties hadoop.home.dir=G ...
- 搭建maven开发环境测试Hadoop组件HDFS文件系统的一些命令
1.PC已经安装Eclipse Software,测试平台windows10及Centos6.8虚拟机 2.新建maven project 3.打开pom.xml,maven工程项目的pom文件加载以 ...
- Hadoop之HDFS原理及文件上传下载源码分析(上)
HDFS原理 首先说明下,hadoop的各种搭建方式不再介绍,相信各位玩hadoop的同学随便都能搭出来. 楼主的环境: 操作系统:Ubuntu 15.10 hadoop版本:2.7.3 HA:否(随 ...
- Hadoop之HDFS原理及文件上传下载源码分析(下)
上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文 ...
随机推荐
- 异想家Eclipse的偏好配置
1.汉化 http://www.eclipse.org/babel/downloads.php 找到Babel Language Pack Zips,下面选自己版本点进去,找到如下类似的中文包: Ba ...
- SIFT特征匹配算法介绍
原文路径:https://www.learnopencv.com/histogram-of-oriented-gradients/ 按语:偶得SIFT特征匹配算法原理介绍,此文章确通俗易懂,分享之! ...
- Docker底层架构之命名空间
前言 命名空间是 Linux 内核一个强大的特性.每个容器都有自己单独的命名空间,运行在其中的 应用都像是在独立的操作系统中运行一样.命名空间保证了容器之间彼此互不影响.相应的命名空间功能如下: pi ...
- mybatis入门案例分析
mybatis入门案例分析 一.设计模式分析 public class MybatisTest { public static void main(String[] args) throws Exce ...
- VS2013 连接 Oracle出现尝试加载 Oracle 客户端库时引发 BadImageFormatException 32位与64位问题解决方案
摘自 :https://blog.csdn.net/similing/article/details/54318434 遇到这种问题是64位系统安装32位Oracle与VS2010的连接出现问题 解决 ...
- uml-类图书写指南
说明 类图是最常用的UML图,面向对象建模的主要组成部分.它用于描述系统的结构化设计,显示出类.接口以及它们之间的静态结构和关系. 类图主要产出于面向对象设计的分析和设计阶段,用来描述系统的静态结构. ...
- ros之发布者和订阅者协同工作
前面的例子显示了单个发布者/单个订阅者的情况,但是一个节点也可以同时是一个发布者和订阅者,或者拥有多个订阅和发布. 实际上,ROS节点最常做的事情是传递消息,并在消息上进行运算. 例doubler.p ...
- scrapy-redis分布式爬虫实战
Scrapy-Redis代码实战 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件 ...
- 视觉slam十四讲课后习题ch3-7
题目回顾: 设有小萝卜一号和小萝卜二号位于世界坐标系中,小萝卜一号的位姿为:q1=[0.35,0.2,0.3,0.1],t2=[0.3,0.1,0.1]^T (q的第一项为实部.请你把q归一化后在进行 ...
- css- :before :after
:before和:after的作用就是在指定的元素内容(而不是元素本身)之前或者之后插入一个包含content属性指定内容的行内元素,最基本的用法如下: #example:before { conte ...