文档章节

用 Hadoop Java Api 针对 HDFS 进行文件上传、创建、重命名、删除等操作

yaokangjun
 yaokangjun
发布于 2014/09/29 17:45
字数 335
阅读 316
收藏 0

一、项目要加入的一些包:

二、下面是代码相关的:

package org.apache.hadoop.examples.yao;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class FileDemo {

	public static void main(String[] args)  throws IOException{
		mkdir("test");
		putFile("/home/yaokj/temp.txt","test/test.txt");
		createFile("test/create.txt");
		rename("test/test.txt","test/test2.txt");
		System.out.println(deleteFile("test/test2.txt"));
		System.out.println(getLastModifyTime("test/create.txt"));
		System.out.println(isExists("test/create.txt"));
		System.out.println(isExists("test/test2.txt"));
	}
	
	public static boolean isExists(String path) throws IOException{
		FileSystem fs = getFileSystem() ; 
		return fs.exists(new Path(path));
	}
	public static long getLastModifyTime(String path) throws IOException{
		FileSystem fs = getFileSystem() ; 
		FileStatus file = fs.getFileStatus(new Path(path));
		return file.getModificationTime();
	}
	public static boolean deleteFile(String path) throws IOException{
		FileSystem fs = getFileSystem() ; 
		return fs.delete(new Path(path),false);//false 为是否递归删除
	}
	
	public static void rename( String fromFile,String toFile) throws IOException{
		FileSystem fs = getFileSystem() ; 
		fs.rename(new Path(fromFile), new Path(toFile));
		fs.close();
	}
	
	public static void createFile(String file)  throws IOException{
		FileSystem fs = getFileSystem() ;
		FSDataOutputStream fsd = fs.create(new Path(file));
		byte[] witeByte = "Hello world , you know".getBytes();
		fsd.write(witeByte, 0, witeByte.length);
		
		fsd.close();
		fs.close();
	}
	
	public static void putFile(String srcPath ,String dstPath) throws IOException{
		FileSystem fs = getFileSystem() ;
		
		Path src = new Path( srcPath);
		Path dst = new Path(dstPath);
		
		fs.copyFromLocalFile(src, dst);
		
		FileStatus[] fileStatus = fs.listStatus(dst);
		
		for(FileStatus status : fileStatus){
			System.out.println(status.getPath());
		}
		
		fs.close();
	}
	
	public static void mkdir(String dst) throws IOException{
		if(dst != null && !"".equals(dst)){
			FileSystem fs = getFileSystem();
			fs.mkdirs(new Path(dst));
			fs.close();
		}
		
	}
	
	public static FileSystem getFileSystem() throws IOException{
		Configuration cfg = new Configuration();
	    cfg.addResource(new Path("/home/yaokj/hadoop-0.20.203.0/conf/hdfs-site.xml"));
		cfg.addResource(new Path("/home/yaokj/hadoop-0.20.203.0/conf/core-site.xml"));
		FileSystem fs = FileSystem.get(cfg);
		return fs;
	}

}



© 著作权归作者所有

yaokangjun
粉丝 27
博文 62
码字总数 29408
作品 0
广州
程序员
私信 提问
hadoop(02)、使用JAVA API对HDFS进行基本操作

本文源码码云地址:https://gitee.com/MaxBill/hadoop 在上篇《hadoop(01)、windows平台下hadoop环境搭建》中,实践了在windows平台下使用搭建hadoop开发环境,同时搭建完毕在基于命令行的形...

MaxBill
2017/11/16
836
0
Hadoop 在Centos7上的伪分布式搭建

安装 SSH 客户端 安装SSH: 安装完成后,可以使用下面命令进行测试: 输入root账户的密码,如果可以正常登录,则说明SSH安装没有问题。测试正常后使用exit命令退出ssh。 安装 JAVA 环境 安装...

Menzel3
2017/11/03
132
0
Hadoop 系列(七)—— HDFS Java API

一、 简介 想要使用 HDFS API,需要导入依赖 。如果是 CDH 版本的 Hadoop,还需要额外指明其仓库地址: 二、API的使用 2.1 FileSystem FileSystem 是所有 HDFS 操作的主入口。由于之后的每个...

黑白影
08/07
0
0
hadoop在linux上单机安装过程心得

昨天我在我的一台linux上安装了一下hadoop的1.1.2版本,并简单的使用了一下,感觉hadoop就向一个linux虚拟机,可以在上面创建文件夹、放文件,删除文件夹、删除文件,只是它NB的地方是可以帮...

BLUE-魏晓峰
2013/07/06
8.5K
0
Centos7上搭建hadoop2.7分布式集群环境实验记录

ps:因为实验需要和学习过程,为了更好学习hadoop,所以为了方便记录以及供学习交流,特此做一份hadoop搭建实验记录。 1.准备三台虚拟机。 2.修改三台虚拟机的主机名分别为master,slave01,sl...

mukvintt
2018/04/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

线程池总结

1、主要参数说明 corepoolsize核心线程数、maxpoolsize最大线程数、keepalivetime闲置线程收回时间设置、workQueue工作队列(synchronizeQueue、LinkedBlockingQueue、ArrayListBlockingQueu...

青菜番茄h
4分钟前
2
0
Linux 下防火墙开启端口

1. 查看系统防火墙状态(running 表示开启运行状态) firewall-cmd --state 开启防火墙:systemctl start firewalld.service 关闭防火墙:systemctl stop firewalld.service 2. 开启端口外网访...

newdengs
7分钟前
2
0
一文看懂 K8s 日志系统设计和实践

上一篇中我们介绍了为什么需要一个日志系统、为什么云原生下的日志系统如此重要以及云原生下日志系统的建设难点,相信DevOps、SRE、运维等同学看了是深有体会的。本篇文章单刀直入,会直接跟...

阿里巴巴云原生
8分钟前
2
0
2019上海会议还有哪些召开,11月及12月的互联网技术类等大会?

2019年还剩下40多天的时候,上海有还有哪些会议召开呢?让我们跟随活动家官网的展示,看看今年还剩下哪些会议可以去参加! 上海2019年11月至12月会议列表清单 技术/互联网/通信/区块链 类 20...

活动家峰会
10分钟前
1
0
2019最新数据分析软件PASS&NVIVO视频教程合集

还在为数据繁杂而困扰吗? 还在为不知道怎么提炼有价值的数据而焦躁吗? 别担心,解决的办法来了!本文就为大家介绍两款数据分析的实用软件。当然介绍软件的同时,更有两款软件最全的视频教程...

yuyuyuyo
12分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部