- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hdfs 原理及操作
HDFS 原理及操作
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明
显位置给出原文连接,博主为石山园,博客地址为 /shishanyuan 。
该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博
客边上机实验,课程地址为 /courses/237
【注】该系列所使用到安装包、测试数据和代码均可在百度网盘下载,具体地址为
/s/10PnDs ,下载该PDF 文件
1 环境说明
部署节点操作系统为CentOS ,防火墙和SElinux 禁用,创建了一个shiyanlou 用户并在系
统根目录下创建/app 目录,用于存放 Hadoop 等组件运行包。因为该目录用于安装 hadoop
等组件程序 ,用户对shiyanlou 必须赋予rwx 权限(一般做法是root 用户在根目录下创建/app
目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app )。
Hadoop 搭建环境:
虚拟机操作系统: CentOS6.6 64 位,单核,1G 内存
JDK :1.7.0_55 64 位
Hadoop :1.1.2
2 HDFS 原理
HDFS (Hadoop Distributed File System )是一个分布式文件系统 ,是谷歌的GFS 山寨版
本。它具有高容错性并提供了高吞吐量的数据访问,非常适合大规模数据集上的应用 ,它提供了
一个高度容错性和高吞吐量的海量数据存储解决方案。
高吞吐量访问:HDFS 的每个Block 分布在不同的 Rack 上,在用户访问时,HDFS 会计算
使用最近和访问量最小的服务器给用户提供。由于Block 在不同的 Rack 上都有备份,所以
不再是单数据访问,所以速度和效率是非常快的。另外 HDFS 可以并行从服务器集群中读写,
增加了文件读写的访问带宽。
高容错性:系统故障是不可避免的,如何做到故障之后的数据恢复和容错处理是至关重要的。
HDFS 通过多方面保证数据的可靠性,多份复制并且分布到物理位置的不同服务器上,数据
第 1 页 共 16 页 出自石山园,博客地址:/shishanyuan
校验功能、后台的连续自检数据一致性功能都为高容错提供了可能。
线性扩展 :因为 HDFS 的Block 信息存放到NameNode 上,文件的Block 分布到DataNode
上,当扩充的时候仅仅添加 DataNode 数量,系统可以在不停止服务的情况下做扩充,不
需要人工干预。
2.1 HDFS 架构
如上图所示 HDFS 是 Master 和Slave 的结构 ,分为NameNode、Secondary NameNode
和 DataNode 三种角色。
NameNode :在 Hadoop1.X 中只有一个Master 节点 ,管理HDFS 的名称空间和数据块映
射信息、配置副本策略和处理客户端请求 ;
Secondary NameNode :辅助NameNode ,分担NameNode 工作 ,定期合并fsimage
和fsedits 并推送给 NameNode ,紧急情况下可辅助恢复NameNode ;
DataNode :Slave 节点,实际存储数据、执行数据块的读写并汇报存储信息给 NameNode ;
第 2 页 共 16 页 出自石山园,博客地址:/shishanyuan
2.2 HDFS 读操作
1. 客户端通过调用FileSystem对象的open()方法来打开希望读取的文件,对于HDFS来说,
这个对象时分布文件系统的一个实例 ;
2. DistributedFileSystem 通过使用 RPC 来调用 NameNode 以确定文件起始块的位置 ,同
一 Block 按照重复数会返回多个位置 ,这些位置按照 Hadoop 集群拓扑结构排序,距离
客户端近的排在前面 ;
3. 前两步会返回一个FSDataInputStream对象,该对象会被封装成DFSInputStream对象,
DFSInputStream 可以方便的管理datanode 和name
文档评论(0)