Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门
2014-02-05 23:57
615 查看
一.HDFS出现的背景
随着社会的进步,需要处理数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护—>因此,迫切需要一种系统来管理多台机器上的文件,于是就产生了分布式文件管理系统,英文名成为DFS(Distributed File System)。那么,什么是分布式文件系统?简而言之,就是一种允许文件通过网络在多台主机上分享的文件系统,可以让多个机器上的多个用户分享文件和存储空间。它最大的特点是“通透性”,DFS让实际上是通过网络来访问文件的动作,由用户和程序看来,就像是访问本地的磁盘一般(In other words,使用DFS访问数据,你感觉不到是访问远程不同机器上的数据)。
public class FileSystemApp { private static final String HDFS_PATH = "hdfs://hadoop-master:9000/testdir/"; private static final String HDFS_DIR = "/testdir/dir1"; public static void main(String[] args) throws Exception { FileSystem fs = getFileSystem(); // 01.创建文件夹 对应shell:mkdir createDirectory(fs); // 02.删除文件 对应shell:hadoop fs -rm(r) xxx deleteFile(fs); // 03.上传文件 对应shell:hadoop fs -input xxx uploadFile(fs); // 04.下载文件 对应shell:hadoop fs -get xxx xxx downloadFile(fs); // 05.浏览文件夹 对应shell:hadoop fs -lsr / listFiles(fs,"/"); } private static void listFiles(FileSystem fs,String para) throws IOException { final FileStatus[] listStatus = fs.listStatus(new Path(para)); for (FileStatus fileStatus : listStatus) { String isDir = fileStatus.isDir() ? "Directory" : "File"; String permission = fileStatus.getPermission().toString(); short replication = fileStatus.getReplication(); long length = fileStatus.getLen(); String path = fileStatus.getPath().toString(); System.out.println(isDir + "\t" + permission + "\t" + replication + "\t" + length + "\t" + path); if(isDir.equals("Directory")){ listFiles(fs, path); } } } private static void downloadFile(FileSystem fs) throws IOException { final FSDataInputStream in = fs.open(new Path(HDFS_PATH + "check.log")); final FileOutputStream out = new FileOutputStream("E:\\check.log"); IOUtils.copyBytes(in, out, 1024, true); System.out.println("Download File Success!"); } private static void uploadFile(FileSystem fs) throws IOException { final FSDataOutputStream out = fs.create(new Path(HDFS_PATH + "check.log")); final FileInputStream in = new FileInputStream("C:\\CheckMemory.log"); IOUtils.copyBytes(in, out, 1024, true); System.out.println("Upload File Success!"); } private static void deleteFile(FileSystem fs) throws IOException { fs.delete(new Path(HDFS_DIR), true); System.out.println("Delete File:" + HDFS_DIR + " Success!"); } private static void createDirectory(FileSystem fs) throws IOException { fs.mkdirs(new Path(HDFS_DIR)); System.out.println("Create Directory:" + HDFS_DIR + " Success!"); } private static FileSystem getFileSystem() throws IOException, URISyntaxException { return FileSystem.get(new URI(HDFS_PATH), new Configuration()); } }
View Code
参考文献与资料
(1)传智播客Hadoop从入门到工作视频教程第二季:http://bbs.itcast.cn/thread-21310-1-1.html(2)刘鹏教授,《实战Hadoop:开启通向云计算的捷径》:http://item.jd.com/10830089.html
(3)吴超,《Hadoop的底层架构——RPC机制》:http://www.superwu.cn/2013/08/05/360
(4)zy19982004,《Hadoop学习十一:Hadoop-HDFS RPC总结》:/article/3724381.html
作者:周旭龙
出处:http://www.cnblogs.com/edisonchou/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
相关文章推荐
- Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门
- Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门
- Hadoop海量存储之HDFS基础入门(笔记2)
- Hadoop基础入门学习笔记(基本概念)
- Android入门学习笔记(一)|基础知识|文件数据存储读取|解析XML
- Hadoop基础入门学习笔记(基本概念)
- Hadoop基础入门学习笔记(基本概念)
- Kotlin 入门基础语法学习笔记
- hadoop编程入门学习笔记-5 reduce-side join
- 卷积神经网络(CNN)学习笔记1:基础入门
- JavaScript学习笔记之JS基础入门
- java 从零开始,学习笔记之基础入门<统计图>(四十四)
- Hadoop学习笔记(1) ——菜鸟入门
- 5.1.vue入门基础学习笔记-基础指令介绍(表达式)
- hadoop学习笔记-基于hdfs搭建简单网盘应用
- 卷积神经网络(CNN)学习笔记1:基础入门
- Hadoop 学习笔记(二) HDFS API
- Hadoop学习笔记(六)---HDFS java接口
- Hadoop学习笔记(6)-简述分布式文件系统HDFS原理
- Hadoop学习笔记(二)——HDFS