HDFS简单介绍

声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考。有什么不到之处还望指出,一起学习一起进步。

转载请注明:http://blog.csdn.net/my_acm

Hadoop说白了就是一个提供了处理分析大数据的文件集群,当中最重要的无疑是HDFS(Hadoop Distributed File System)即Hadoop分布式文件系统。

1、

HDFS是一种以流式数据訪问模式(一次写入多次读取的模式)存储超大文件的系统。

其不须要的高端的硬件系统,普通市面上的硬件就能满足要求。

眼下不适合应用HDFS的有:低延迟的数据訪问、大量小的文件、多用户写入随意改动文件等。

2、

HDFS存储以块为单位,通常块大小为64M。之所以要分为这么大的块,主要是为了降低寻址时间,由于眼下来看。传输数据速率越来越快,对于HDFS处理大数据时,假设频繁的寻址必定会使得执行时间变长。

HDFS集群有两种节点名称节点和多个数据节点。当中名称节点充当管理者,数据节点充当工作者。

名称节点相当于HDFS文件树上的枝干分叉点,而数据节点则标注着全部块的存储信息。所以名称节点的丢失就意味着HDFS的瘫痪。

因此Hadoop提供了两种机制解决这一问题:

一种是复制组成文件系统元数据的持久状态文件。即在本地磁盘写入的同一时候也写入一个远程NFS挂载。

还有一种是设置一个二级名称节点。

3、

HDFS提供命令行接口的交互。

4、

Hadoop是一个抽象的文件系统概念,HDFS是当中的一个详细实现,java抽象类org.apache.hadoop.fs.FileSystem展示了Hadoop的一个文件系统,并且有几个详细实现。

如上图所看到的。Hadoop提供了很多文件的接口,一般是通过URL来确定使用何种文件系统实现交互。

5、

Hadoop是java实现的所以,java接口无疑是当中重中之重。以下是java接口的一些详细实现。

(1)      数据读取:

使用URL读取数据

Java识别Hadoop文件系统的URL方案,就是通过一个FsUrlStreamHandlerFactory实例来调用在URL中的setURLStreamHandlerFactory方法。

注意:这样的方法在java虚拟机中仅仅能被调用一次。所以通常设置为static,也因此假设程序其它部件(可能不是在你控制的第三方部件)设置了一个URLStreamHandlerFactory,那么久再也不能从Hadoop读取数据。

代码:

输入执行:

% hadoop URLCat hdfs://localhost/user/tom/test.txt

结果:

Hello world Hello world

Hello world

Hello world Hello world

使用FileSystem API读取数据

直接看代码吧。注意看凝视

(2)      数据写入

FileSystem类有一系列创建文件的方法。

public FSDataOutputStream create(Pathf) throws IOException

用create创建文件是可用exists()推断其父文件夹是否存在。

另一个用于传递回调接口的重载方法 Progressable,如此一来。我们所写的应用就会被告知数据写入数据节点的进度。

package org.apache.hadoop.util;

public interface Progressable{

publicvoid progress();

}

创建文件的还能够用例如以下方法:

Public FSDataOutputStream append(Pathf) throws IOException

此方法同意在打开文件的末尾追加数据。

(3)      文件夹

FileSystem题目了创建文件夹的方法:

public Boolean mkdirs(Path f) thorwsIOException

(4)      查询文件系统

FileStatus类封装了文件系统中文件和文件夹的元数据。包含文件长度、块大小、副本、改动时间、全部者以及许可信息。

FileSystem的getFileStatus()提供了获取一个文件或文件夹的状态对象方法。

假设仅仅是推断一个文件是否存在。则能够使用前文提到的exists(Path f)方法。

Hadoop有时要查询批量文件时通常要用到通配符。所以它为运行通配符提供了

Hadoop支持与Unix bash同样的通配符两个FileSystem方法:

public FileStatus[] globStatus (PathpathPattern) throws IOException

public FileStatus[] globStatus (Path pathPattern,PathFileter filter)throws IOException

通配符:

(5)      删除数据

FileSystem中的delete()方法能够永久删除文件夹。

public Boolean delete(Path f,Boolean recursive) throwsIOException

转载于:https://www.cnblogs.com/jzssuanfa/p/6958412.html

Hadoop权威指南学习笔记三相关推荐

  1. Hadoop权威指南学习笔记一

    Hadoop简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出.一起学习一起进步. 转载请注明:http://blog.csdn.net/ ...

  2. netty权威指南学习笔记三——TCP粘包/拆包之粘包现象

    TCP是个流协议,流没有一定界限.TCP底层不了解业务,他会根据TCP缓冲区的实际情况进行包划分,在业务上,一个业务完整的包,可能会被TCP底层拆分为多个包进行发送,也可能多个小包组合成一个大的数据包 ...

  3. Hadoop权威指南 - 学习笔记

    初识Hadoop.关于MapReduce Hadoop宏观介绍 相对于其他系统的优势 关系型数据库管理系统 为什么不能用配有大量硬盘的数据库进行大规模分析?为什么需要Hadoop? 因为计算机硬盘的发 ...

  4. hadoop 权威指南学习笔记ing(1)

    1. zookeeper: 高可用性的分布式协调服务 分布式困难在于部分失败:消息传递过程中,到底接收方收到与否,无法确定下来,才有了tcp协议的3次握手这样比较复杂的协议 2. zk的实例 可以讲z ...

  5. 《Hadoop权威指南》第三章 Hadoop分布式文件系统

    <Hadoop权威指南>第三章 Hadoop分布式文件系统 目录 前言 HDFS的设计 HDFS的概念 命令行接口 Hadoop文件系统 Java接口 数据流 通过distcp并行复制 注 ...

  6. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! JavaScript 权威指南-学习笔记 ...

  7. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  8. MapReduce总结 + 相关Hadoop权威指南读书笔记(未完......欢迎补充,互相学习)

    文章目录 MapReduce概述 MapReduce优缺点 MapReduce核心思想 MapReduce进程 MapReduce编程规范 WordCount 案例实操 本地测试 集群测试 Hadoo ...

  9. maven 一个简单项目 —— maven权威指南学习笔记(三)

    目标: 对构建生命周期 (build  lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...

最新文章

  1. android组件化架构 书,Android MVVM组件化架构方案
  2. 实战演示 Go 反射的使用方法和应用场景
  3. SAP Fiori应用里的get org sales target
  4. mac找不到mysql_mac找不到mysql
  5. 语法分析器c语言实验报告,词法分析实验报告(C++)..doc
  6. 跨越原理优缺点_请教:单管跨越式和双管式的优缺点
  7. Python DearPyGui 项目实践
  8. 微信支付宝关闭三星Galaxy指纹支付;乐视网回应贾跃亭破产;Chrome 78发布|极客头条...
  9. P1754 球迷购票问题 (卡特兰数,递推)
  10. VS Code 快捷键设置
  11. al换脸一键生成_使用al生成详细的课程计划
  12. web开发规范 - 图片规范
  13. 1stopt拟合步骤_1stopt三维曲线拟合
  14. Python编程之求自由落体高度
  15. Office2016无法启动安装,正在进行另一个安装操作
  16. Mac如何查看隐藏文件夹
  17. SAP SuccessFactors EC学习笔记(二)解码员工数据对象
  18. android.app.WallpaperManager壁纸管理类
  19. 车载终端项目GPS模块算法详述
  20. Windows扫雷游戏代码详解【memset函数】

热门文章

  1. 浏览器中遮罩层镂空效果的多种实现方法
  2. STM32时钟源时钟系统配置
  3. 解决Tk的窗口左上角位置设定不正确问题
  4. sdut2772 KMP的简单应用
  5. qq邮箱格式的Java代码_Java实现QQ邮件发送
  6. ArcGIS案例学习1_2
  7. BZOJ[1713][Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会 二维斜率优化
  8. python爬虫——利用BeautifulSoup4爬取糗事百科的段子
  9. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业...
  10. Java—接口与抽象类