小标
2019-01-07
来源 :
阅读 1012
评论 0
摘要:本文主要向大家介绍了【云计算】Hadoop-HDFS框架技术解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
本文主要向大家介绍了【云计算】Hadoop-HDFS框架技术解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
Hadoop 主要由HDFS和MapReduce 两个核心部分组成。其中最底部就是HDFS,
它被用来存储Hadoop集群中所有存储节点上的文件。
HDFS架构图:
HDFS的设计目标:
1、硬件故障是常态,而不是异常,运行在普通廉价的机器上
2、适合流式数据访问
3、适合大规模数据集,非常巨大的分布式文件系统
5、移动计算比移动数据更划算
6.易扩展,为用户提供性能不错的文件存储服务
A typical deployment has a dedicated machine that runs only the NameNode software.
Each of the other machines in the cluster runs one instance of the DataNode software.
The architecture does not preclude running multiple DataNodes on the same machine but in a
real deployment that is rarely the case.
部署架构建议:NameNode+N个DataNode
NN和DN部署在不同的节点
选择 HDFS 存储数据,是因为 HDFS 具有以下优点:
(1)高容错性
1)数据自动保存多个副本。它通过增加副本的形式,提高容错性。
2)某一个副本丢失以后,它可以自动恢复,这是由 HDFS内部机制实现的,我们不必关心。
(2)适合批处理
1)它是通过移动计算而不是移动数据。
2)它会把数据位置暴露给计算框架。
(3)适合大数据处理
1)数据规模:能够处理数据规模达到 GB、TB、甚至PB级别的数据。
2)文件规模:能够处理百万规模以上的文件数量,数量相当之大。
3)节点规模:能够处理10K节点的规模。
(4)流式数据访问
1)一次写入,多次读取,不能修改,只能追加。
2)它能保证数据的一致性。
(5)可构建在廉价机器上
1)它通过多副本机制,提高可靠性。
2)它提供了容错和恢复机制。比如某一个副本丢失,可以通过其它副本来恢复。
2、当然 HDFS 也有它的劣势,并不适合所有的场合:
(1)不适合低延时数据访问
1)比如毫秒级的来存储数据,这是不行的,它做不到。
2)它适合高吞吐率的场景,就是在某一时间内写入大量的数据。但是它在低延时的情况 下是不行的,
比如毫秒级以内读取数据,这样它是很难做到的。
(2)无法高效的对大量小文件进行存储
1)存储大量小文件的话,它会占用 NameNode大量的内存来存储文件、目录和块信息。这样是不可取的,
因为NameNode的内存总是有限的。
2)小文件存储的寻道时间会超过读取时间,它违反了HDFS的设计目标。 改进策略
(3)并发写入、文件随机修改
1)一个文件只能有一个写,不允许多个线程同时写。
2)仅支持数据 append(追加),不支持文件的随机修改。
常用的架构部署图:
NameNode管理文件系统的元数据,DataNode存储实际的数据。客户端通过同
NameNode和DataNodes的交互访问文件系统。客户端联系NameNode以获取文件的元数据,
而真正的文件I/O操作是直接和DataNode进行交互的。
这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。
下面我们分别介绍这四个组成部分。
Client:就是客户端。
1、文件切分。文件上传 HDFS的时候,Client将文件切分成 一个一个的Block,然后进行存储。
2、与 NameNode 交互,获取文件的位置信息。
3、与 DataNode 交互,读取或者写入数据。
4、Client 提供一些命令来管理 HDFS,比如启动或者关闭HDFS。
5、Client 可以通过一些命令来访问 HDFS。
NameNode:就是 master,它是一个主管、管理者。
1、管理 HDFS 的名称空间。
2、管理数据块(Block)映射信息
3、配置副本策略
4、处理客户端读写请求。
DataNode:就是Slave。NameNode 下达命令,DataNode 执行实际的操作。
1、存储实际的数据块。
2、执行数据块的读/写操作。
Secondary NameNode:并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。
1、辅助 NameNode,分担其工作量。
2、定期合并 fsimage和fsedits,并推送给NameNode。
3、在紧急情况下,可辅助恢复 NameNode。
HDFS副本机制:
副本因子、副本系数:
An application can specify the number of replicas of a file that should be maintained by HDFS. The number of copies of a file is called the replication factor of that file.
All blocks in a file except the last block are the same size
读写:
Files in HDFS are write-once and have strictly one writer at any time.
心跳机制:
The NameNode makes all decisions regarding replication of blocks. It periodically receives a Heartbeat and a Blockreport from each of the DataNodes in the cluster. Receipt of a Heartbeat implies that the DataNode is functioning properly. A Blockreport contains a list of all blocks on a DataNode
HDFS 副本存放策略:
第一个副本:存储在同 Client 相同节点上。第二个副本:存储在不同机架的节点上。
第三个副本:存储在第二个副本机架中的另外一个节点上。其它副本:选择随机存储
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号