搜索
首页数据库mysql教程Hadoop权威指南学习笔记三

Hadoop权威指南学习笔记三

Jun 07, 2016 pm 04:12 PM
hadoophdfs声明学习指南笔记简介

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

 

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL:初学者的基本技能MySQL:初学者的基本技能Apr 18, 2025 am 12:24 AM

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL:结构化数据和关系数据库MySQL:结构化数据和关系数据库Apr 18, 2025 am 12:22 AM

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL:解释的关键功能和功能MySQL:解释的关键功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL的目的:与MySQL数据库进行交互SQL的目的:与MySQL数据库进行交互Apr 18, 2025 am 12:12 AM

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

初学者的MySQL:开始数据库管理初学者的MySQL:开始数据库管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA

MySQL的角色:Web应用程序中的数据库MySQL的角色:Web应用程序中的数据库Apr 17, 2025 am 12:23 AM

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

mysql:构建您的第一个数据库mysql:构建您的第一个数据库Apr 17, 2025 am 12:22 AM

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL:一种对数据存储的初学者友好方法MySQL:一种对数据存储的初学者友好方法Apr 17, 2025 am 12:21 AM

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。