0

0

Hadoop权威指南学习笔记三

php中文网

php中文网

发布时间:2016-06-07 16:12:53

|

1092人浏览过

|

来源于php中文网

原创

HDFS简介 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习参考,有什么不到之处还望指出,一起学习一起进步。 Hadoop说白了就是一个提供了处理分析大数据的文件集群,其中最重要的无疑是HDFS(Hadoop Distributed File System)即Had

HDFS简介

 

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

下载

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

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 Hell【本文来自鸿网互联 (http://www.68idc.cn)】o 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

 

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

203

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

111

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

124

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

93

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

664

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

19

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

15

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

6

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

3

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚学堂Mahout视频教程
尚学堂Mahout视频教程

共18课时 | 3.2万人学习

Laravel---API接口
Laravel---API接口

共7课时 | 0.6万人学习

ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 8.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号